主题:马上要交作业了,题目不知道做,求帮助
数据菜鸟级别
[专家分:0] 发布于 2011-09-22 16:43:00
描述
今天同来面试的,还有Mr.true
Mr.true是一位高中大学都搞竞赛的小超人,而MS也很需要这样的人才。
于是,不用说,他去面试的时候会得到一点点小特权,那就是他可以少排一会队———漂亮的人力资源MM会给他安排一个靠前的位置。
输入
第一行为一个整数T,表示有T组数据。
每组数据有3行:
第一行为原队伍已有的人数N;
第二行有n个以空格隔开的整数表示原队伍面试编号序列;
第三行为两个整数P、Q,P表示Mr.true拿到的面试编号,Q表示Mr.true将插入队伍中的第Q个位置。
保证没有相同号码,保证N不大于10000
输出
插入后队伍面试编号的情况。
样例输入
2
3
1 2 3
4 2
4
9 8 2 3
7 1
样例输出
1 4 2 3
7 9 8 2 3
陪同Mr.true&&Eddy一同去面试的还有DavidDeng。
DavidDeng信心满满的去微软面试,一群面试者排起了长长的队伍,每个人有张面试编号。
这时,一位大美女KZ从他身边走过,DavidDeng对其一见钟情,DavidDeng拿起他的面试编号N就离开了面试队伍。
输入
第一行为一个整数T,表示有T组数据。
每组数据有三行:
第一行是一个整数M ,表示原队伍有M个人;
第2行有M个以空格隔开的整数,即原队伍中每个人的面试编号;
第三行为DavidDeng的面试编号N。
保证没有相同号码,保证N不大于10000
输出
DavidDeng离开后队伍的面试编号序列。
样例输入
1
4
1 3 8 2
3
样例输出
1 8 2
这两题,一题用顺序,一题用单链表,很急啊,哪位大神帮帮忙吧
回复列表 (共3个回复)
沙发
windy0will [专家分:2300] 发布于 2011-09-22 19:36:00
如果真的只是应付交作业,那直接和老师说 “我不想做作业”,老师应该会通融的吧。
板凳
fragileeye [专家分:1990] 发布于 2011-09-22 21:56:00
两题都给你写了,也不去注意代码,注释什么的了,觉得你也用不上,还有要告诉你,如果只是应付的话,只用考试过了就好了,不用太费心平时作业。学分拿到就好了,以后希望别到这发作业贴了,大家不会花时间帮你的,即使你再急。。。
[code=c]
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 10000
typedef struct OrderList
{
int ele[N];
int len;
} *OList;
void insert(OList arlist, int t_num, int loc);
int main(int argc, char *argv[])
{
int date_num, line_num, exsit_ps, t_num, loc, i, ct;
OList ar_list = NULL;
if(scanf("%d", &date_num) && date_num >= N)
{
fprintf(stderr, "date_num can't be greater than 10000\n");
exit(EXIT_FAILURE);
}
else
{
ar_list = (OList )malloc(sizeof(struct OrderList));
memset(ar_list->ele, 0, N * sizeof(int ));
for(ct = 0; ct < date_num; ct++)
{
scanf("%d", &exsit_ps);
ar_list->len = exsit_ps;
for(i = 0; i < exsit_ps; i++)
{
scanf("%d", &ar_list->ele[i]);
}
scanf("%d%d", &t_num, &loc);
insert(ar_list, t_num, loc);
for(i = 0; i < ar_list->len; i++)
{
printf("%d ", ar_list->ele[i]);
}
putchar('\n');
}
free(ar_list);
}
return 0;
}
void insert(OList ar_list, int t_num, int loc)
{
int i;
if(loc >= ar_list->len)
{
ar_list->ele[ar_list->len] = t_num;
}
else
{
for(i = ar_list->len; i >= loc; i--)
{
ar_list->ele[i] = ar_list->ele[i - 1];
}
ar_list->ele[i] = t_num;
ar_list->len++;
}
}
[/code]
3 楼
fragileeye [专家分:1990] 发布于 2011-09-22 21:58:00
[code=c]
#include <stdio.h>
#include <stdlib.h>
typedef struct LinkList
{
int data;
struct LinkList *next;
}*List;
List init_list(int num);
List del_ele(List link_list, int del_num);
void print_list(List link_list);
void del_list(List link_list);
int main(int argc, char *argv[])
{
int ct, num, i, del_num;
List link_list;
while(1)
{
scanf("%d", &ct);
if(ct > 0)
{
break;
}
else
{
fprintf(stderr, "data_num must be greater than 0!\n");
}
}
for(i = 0; i < ct; i++)
{
scanf("%d", &num);
link_list = init_list(num);
scanf("%d", &del_num);
link_list = del_ele(link_list, del_num);
print_list(link_list);
del_list(link_list);
}
return 0;
}
List init_list(int num)
{
List link_list, p, q;
int e;
p = link_list = (List )malloc(sizeof(struct LinkList));
link_list->data = num ;
link_list->next = NULL;
while(num > 0)
{
scanf("%d", &e);
q = (List )malloc(sizeof(struct LinkList));
q->data = e;
p->next = q;
p = q;
num--;
}
q->next = NULL;
return link_list;
}
List del_ele(List link_list, int del_num)
{
int i;
List p, q;
p = link_list->next;
q = link_list;
for(i = 0; i < link_list->data; i++)
{
if(p->data == del_num)
{
break;
}
else
{
q = p;
p = p->next;
}
}
q->next = p->next;
free(p);
return link_list;
}
void print_list(List link_list)
{
List temp = link_list->next;
while(temp != NULL)
{
printf("%d ", temp->data);
temp = temp->next;
}
}
void del_list(List link_list)
{
List temp = NULL;
while(link_list != NULL)
{
temp = link_list->next;
free(link_list);
link_list = temp;
}
}
[/code]
我来回复