首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

!为何输入到最后会出错

2013-07-08 
求高手指教!!为何输入到最后会出错#includestdio.h#includemath.h int a,n,d[10],b[10],c[10] char n

求高手指教!!为何输入到最后会出错
#include<stdio.h>
#include<math.h>

 int a,n,d[10],b[10],c[10];
 char name[10];

void main()



printf("请输入时刻表的条数\n");
    scanf("%d",&a);


    for(n=0;n<a;n++) 
{
  printf("请输入第");
      printf("%d",n+1);
      printf("个选手,并输入其状态,进入输入1,退出请输入2\n");
      scanf("%d",&c[n]);
      if(c[n]==1)
{printf("请输入其余信息");
scanf("%s %d %d",&name[n],&b[n],&d[n]);}
 if(c[n]==2)
 {  printf("请输入其姓名");
    scanf("%s",&name[n]);
    b[n]=0; 
    d[n]=0;
 }
 }
       for(n=0;n<a;n++)
   {  printf("%d\n",c[n]);
      printf("%s\n",name[n]);
      printf("%d\n",b[n]);
      printf("%d\n",d[n]);
   }
}



求帮助,好人全家一生平安快乐!! C
[解决办法]

引用:
你这个name应该用二维数组,   char   *name[ ];

你这个邪法也有错误啊,要么用二级指针,要么写成
char (*name)[number]
;
[解决办法]
#include<stdio.h>
#include<math.h>

 int a,n,d[10],b[10],c[10];
 char name[10][10];//改成二维的

void main()



printf("请输入时刻表的条数\n");
    scanf("%d",&a);


    for(n=0;n<a;n++) 
{
  printf("请输入第");
      printf("%d",n+1);
      printf("个选手,并输入其状态,进入输入1,退出请输入2\n");
      scanf("%d",&c[n]);
      if(c[n]==1)
{printf("请输入其余信息");
scanf("%s %d %d",&name[n],&b[n],&d[n]);}
 if(c[n]==2)
 {  printf("请输入其姓名");
    scanf("%s",&name[n]);
    b[n]=0; 
    d[n]=0;
 }
 }
       for(n=0;n<a;n++)
   {  printf("%d\t",c[n]);
      printf("%s\t",name[n]);
      printf("%d\t",b[n]);
      printf("%d\t",d[n]);//改成制表符,看的清楚。
  printf("\n");
   }
}

[解决办法]
scanf("%s %d %d",&name[n],&b[n],&d[n]);}

[解决办法]
#include<stdio.h>
#include<math.h>

int a,n,d[10],b[10],c[10];
char name[10][10];

int main(){
printf("请输入时刻表的条数\n");
    scanf("%d",&a);

    for(n=0; n<a; n++){
printf("请输入第%d个选手,并输入其状态,进入输入1,退出请输入2\n",n+1);

scanf("%d",&c[n]);
if(c[n] == 1){
printf("请输入其余信息");


scanf("%s", name[n]);
scanf("%d%d", &b[n], &d[n]);
}
if(c[n]==2){
printf("请输入其姓名");
scanf("%s", name[n]);
b[n] = 0; 
d[n] = 0;
}
}
for(n=0; n<a; n++){
printf("%d\n",c[n]);
printf("%s\n",name[n]);
printf("%d\n",b[n]);
printf("%d\n",d[n]);
}
return 0;
}


[解决办法]
#include<stdio.h>
#include<math.h>

int a,n,d[10],b[10],c[10];
char name[10][10];//这里修改一下,用二维数组,每一行存储一个名字

void main()

printf("请输入时刻表的条数\n");
    scanf("%d",&a);
for(n=0;n<a;n++) 
{
printf("请输入第%d个选手,并输入其状态,进入输入1,退出请输入2\n",n+1);
scanf("%d",&c[n]);
      if(c[n]==1)
{
printf("请输入其余信息");
scanf("%s%d%d",&name[n],&b[n],&d[n]);
}
if(c[n]==2)
{  
printf("请输入其姓名");
            scanf("%s",&name[n]);
            b[n]=0; 
            d[n]=0;
}
}
for(n=0;n<a;n++)
    {  
printf("%d\n",c[n]);
        printf("%s\n",&name[n]);
        printf("%d\n",b[n]);
        printf("%d\n",d[n]);
    }
}

热点排行