C语言高手帮忙啊!急!!!!!!!!

作者&投稿:镇思 (若有异议请与网页底部的电邮联系)
C语言高手帮忙~

#include
void main(){
void eliminate(int n, int k);
int total, num;
printf("请输入总人数:
");
scanf("%d",&total);
printf("请输入淘汰号k:
");
scanf("%d",&num);
eliminate(total,num);
}
void eliminate(int n, int k){
int *arr, size=n, count=-1;
arr=new int[n];
for(int i=0; i<n; i++){
arr[i]=i+1;//这里可以用输入语句scanf("%d",&a[i]);来手动输入每个参与者的编号
}
while(size>1){
for(int i=0;i<k;i++){
count++;
if(count==size)
count=0;
}
size--;
printf("第 %d 个淘汰者是 %d 号
",n-size,arr[count]);
if(count!=size)
for(int i=count;i<=size;i++)
arr[i]=arr[i+1];
else
count=0;
}
printf("幸存者是 %d 号
",arr[0]);
}

p = a 改成
p=&a[0][0];

问题很严重,表面上是第4行和第9行有错误,但实质并非如此。
错误:
1:第3行,类型定义后面应加上分号,注意与define不同
2:main()函数,在调用CREAT()、LENGTH()和OUT()函数时不应加上linklist、int和void,你这样写是在申明函数,并非调用。
3:你创建的链表是一第一个元素为头节点的的,但你却将链表长度赋给头节点,导致原头节点值丢失,无法输出。
还有很多指针运用上面的错误,我就不多说了,下面是我修改过的程序:
#include<alloc.h>
#include<stdio.h>
typedef int datatype ;
typedef struct node
{
datatype data;
struct node *next;
} linklist;
linklist *CREAT()
{
datatype n;
linklist * head,* s,* r;
head=NULL;
r=NULL;
printf("Please input the numbers!");
scanf("%d",&n);
head=(linklist*)malloc(sizeof(linklist));
head->data=0;
r=head;
while(n!=0)
{
s=(linklist*)malloc(sizeof(linklist));
s->data=n;
r->next=s;
r=s;
scanf("%d",&n);
}
r->next=NULL;
return head;
}

int LENGTH(linklist *L)
{
int i=0;
linklist *p,*head=L;
p=head->next;
while(p!=NULL)
{
p=p->next;
i++;
}
head->data=i;
return(i);

}

void OUT(linklist *L)
{
linklist *p, *head=L;
p=head->next;
printf("The length of the linklist is %d! \n", head->data);
while(p!=NULL)
{
printf("%d,",p->data);
p=p->next;
}
}

void main()
{
linklist *L;
L=CREAT();
LENGTH(L);
OUT(L);
}
该程序在turboc2.0上运行成功。
顺便说一下:其实我这学期刚学《数据结构》,我想你也应该在学这门课吧,不知道可否交个朋友,以后好互相讨教。QQ:729430705

1. CREAT()函数里面头节点head申明了但没有在链表种使用它 到最后返回head那么链表肯定是空
2.typedef int datatype 后面是不是没加;

#include<malloc.h>
#include<stdio.h>
typedef int datatype ;
typedef struct node
{
datatype data;
struct node *next;
} *linklist;
linklist CREAT()
{
datatype n;
linklist head,s, r;
head=(linklist)malloc(sizeof(linklist));
head->next=NULL;
printf("Please input the numbers!");
scanf("%d",&n);
while(n!=0)
{
s=(linklist)malloc(sizeof(linklist));
s->data=n;
s->next=head->next;
head->next=s;
scanf("%d",&n);
}
//s->data=n;
//r->next=NULL;
return head;
}

int LENGTH(linklist L)
{
int i=0;
linklist p,head;
p=L->next;
while(p!=NULL)
{
p=p->next;
i++;
}
L->data=i;
return(i);

}

void OUT(linklist L)
{
linklist p ,head;
p=head=L;
printf("The length of the linklist is %d! \n", head->data);
while(p!=NULL)
{
printf("%d__",p->data);
p=p->next;
}
}

void main()
{
linklist L;
int length;
L= CREAT();
length=LENGTH(L);
OUT(L);
}

这个程序...即使按照上面那样改过来,估计也运行不了!!!!

照你程序的意思头结点不算元素节点,只是用来存放节点个数对吗?
但是你输入的时候确实将它当做了存放元素的节点了!

你是不是输入的时候一直到输入0才停止输入呀?那0不算节点元素是嘛?如果是就按照下面我给你该的看看是不是你要的:

#include<malloc.h>
#include<stdio.h>
typedef int datatype;
typedef struct node
{
datatype data;
struct node *next;
} linklist;

node *MakeNode(int data) /*节点生成单独提出来作为一个函数*/
{
node *p=(node *)malloc(sizeof(node));
p->data = data;
p->next = NULL;
return p;
}

linklist *initLink()/*链表初始化*/
{
node *p=MakeNode(0);/*输出化的点吧元素个数为0,应传个0*/
return p;
}

int scanData()
{
datatype n;
printf("Please input the numbers:");
scanf("%d",&n);
return n;
}
linklist *CREAT()
{
datatype n=-1;
node *head,*cur,*p;
p= head = initLink();/*初始化链表*/
n = scanData();
while(n)
{
cur = MakeNode(n);
p->next=cur; /*当前节点插入链表末尾节点*/
p=cur;/*当前节点成为链表末尾节点*/

head->data++;/*节点数加1*/

n = scanData();
}
return head;
}

int LENGTH(linklist *L)
{
return L->data;
}

void OUT(linklist *L)
{
/*
linklist *p,*head;
p=head; /*这里的head又是一个野指针*/

linklist *cur=L->next;
printf("The length of the linklist is: %d \n", L->data);
while(cur) /*输出的时候只要判断当前节点是否还有下一个节点不就行了?*/
{
printf("%3d",cur->data);
cur=cur->next;
}
printf("\n");
}

void main()
{
linklist *L;
L = CREAT();
LENGTH(L);
OUT(L);
}


C语言问题,请高手帮忙,急!
在C语言中,这是一个语法错误。在运行程序时发现了一个问题,总是提示一个错误:error C2143: syntax error : missing before type。解决方法如下:把所有变量的声明放在可执行代码之前。出现此问题的原因在于:将文件保存成了 .c 格式。如果是cpp格式就能正常编译。改成.cpp就可以正常运行,和你变量...

求!语言高手!
vagueness Reject ambiguity 阿拉伯语 ترفض الغموض غموض朝鲜语 애매모호 불량품 애매함德语 Unbestimm...

C语言高手帮帮忙!~(急急急)
这个问题很简单的,因为你定义了全局变量,而在插入与删除函数中,又出现了局部变量,所以不论你这么调用这些函数。全局变量总是不会变化,所以你的操作总是失败。在插入删除函数的参数中,将count参数取消即可。建议你写程序时尽量不要用全局变量。

【紧急】求C语言编程高手帮忙、急~这是一个下拉菜单的程序、但是我的...
return;}void littlemenu(char *_menu[],char *_buf,char *_f[],char *_buf1); void littlemenu(char *_menu[],char *_buf,char *_f[],char *_buf1) { int i; textbackground(GREEN); textcolor(BLACK); gotoxy(1,1); cprintf("%s",_menu[0]); gettext(1,2,20,12,_buf); window...

请C语言高手帮忙做几道选择题(能解析一下最好),急~~!
1、在main函数中定义的变量称为全局变量(错)2、while语句的循环体不能是复合语句(错)3、同一数组中可以储存不同类型的值(错)4、不能用运算符==和!=来比较结构(对)5、在C语言中,函数可以递归调用和递归定义(错)6、静态外部变量只限于本文件中使用(错)7、break语句可用于程序的任何地方...

请求语言学高手帮忙
应该只有两种:第一组为单纯词,后面两组为合成词 猩猩、姥姥、蝈蝈、蛐蛐 ——音节的重叠即叠音词 看看丶试试、玩玩、个个、仅仅——词语的重叠即重叠词 姐姐、星星、刚刚、常常、仅仅 ——词语的重叠即重叠词 重叠词与叠音词性质不同:重叠词中的语素是成词语素,可以单用,且整个重叠词的意义就...

C语言高手请帮忙!!!
100分好诱人……我做吧,楼上说的对。好好学习……回复1:(函数)y=1 x>0 y= 0 x=0 y=-1 x<0 用if语句编程,输入x,输出y;include <stdio.h> int main(void){ int x,y;printf("\\nInput x=");scanf("%d",&x);if(x>0) y=1;else if(x==0) y=0;else y=-1;printf...

c语言高手帮帮忙吧!
c语言高手帮帮忙吧!每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。某班学生成绩管理,包括以下功能:从键盘输入包括学号、姓名、各门课程成绩(不少于5门),并... 每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。某班学生成绩管理,包括以下功能:...

急!!!c语言高手进!
第一个很简单,就是实现数组的移动而已 也就是任意位置后面的数据前移一个位置或者后移一个位置的算法 这个就是循环而已 这个两个方式,一个是在原来的基础上做 插入的话,从数组后面开始循环后移,直到插入的地方插入 删除直接冲那个位置用后面的数据覆盖即可 第二个是用新的数组,复制的插入位置,...

急求c语言高手帮忙
你如要放不同的音乐,就编辑文件score.txt include<stdlib.h> include<stdio.h> include<dos.h> void main(){ FILE *fp;int rate;char sound_high[3];float sound_long;register int i = 0,j;int sign = 0;float str[100][2];if((fp = fopen("score.txt","r")) == NULL)\/*...

金塔县13167399859: C语言:急急急!求高手帮忙啊 !
纳饶唐必: #include <stdio.h> #include <string.h> int main() { char str[]="871M&278"; int len=strlen(str); int i,sum=0; for(i=0; i<len; i++) sum+=str[i]; printf("SUM = %d\n",sum); return 0; }

金塔县13167399859: 求c语言大神帮忙,急! -
纳饶唐必: #include int main(){ int number,a,b,c; scanf("%d",&number); a=number%10; b=(number/10)%10; c=number/100; printf("%d%d%d\n",a,b,c); }

金塔县13167399859: 急!!寻求C语言高手帮忙解答!
纳饶唐必: #include<stdio.h> void main() { char string[100]; int i,num=0,space=0; //i是循环变量,num是空格个数,space是空格标志位 char c; gets(string); for(i=0;(c=string[i])=='\0';i++) if(c!=' ')space=0; else if(space==0) { space=1; num++; } printf("there are %d spaces in the line.\n",num); } 这是我做的第2题答案

金塔县13167399859: 求C语言编程高手帮忙!!! -
纳饶唐必: #include#include using namespace std; int main() { int a[20]; for(int i=0;i cin>>a[i]; for(int i=0;i { for (int j=1;a[j]!=0;j++)if(a[i] { int temp; temp=a[i]; a[i]=a[j]; a[j]=temp; }} cout system("pause"); return 0; }

金塔县13167399859: 急求C语言编程高手帮我编程
纳饶唐必: 这是不考虑任何优化的程序代码: #include<stdio.h> void f2(int n) { int i; printf("Sample output2:\n"); for(i=1;i<=n;i++) if(i%3==1&&i%5==1&&i%7==1) printf("%d\n",i); } void main() { int n; printf("Please input n\n"); scanf("%d",&n); f2(n); } 这是输入300运行的结果:

金塔县13167399859: C语言作业,难啊,高手帮下忙 -
纳饶唐必: 1: #include int main() { int fabs(int x); int x; scanf("%...

金塔县13167399859: 急救!!急找C语言高手啊!!! -
纳饶唐必: #include void main() { char s1[]="abcdef", s2[]="123456",s3[20]=" "; int i,j,k=0,e=0; i=0; while(s1[i]!='\0') { s3[k++]=s1[i++]; } j=0; while(s2[j]!='\0') { s3[k++]=s2[j++]; } s3[k]='\0'; while(s3[k]!='\0') { printf("%c",s3[k++]) ; } }

金塔县13167399859: C语言高手来帮帮忙啊() -
纳饶唐必: #include#include#define TRUE 1 /*主函数*/ void main() { int year; int PutinYear(void); year = PutinYear (); void GetMonth(int year); GetMonth (year); } /*输入年份*/ int PutinYear(void) { int year; while(TRUE) { printf("请输入年份(1-3000) : "...

金塔县13167399859: 急,求C语言高手解决
纳饶唐必: #include<stdio.h> #include<string.h> #define N 10 struct date {int year; int month; int day; }; struct student {char num[10]; char name[8]; struct date birthday; char sex; int score[6]; float ave; }stu[N],temp; void main() {int i,j; char k[30]; FILE *fp; if((fp=...

金塔县13167399859: 求C 语言高手好心人帮帮忙 谢谢谢谢谢谢!!! -
纳饶唐必: #include int main(){ char s[100]; char *ps1=s;//声明两个字符指针用于操作字符串,以删除* char *ps2=s; puts("请输入字符串:");...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网