一个数组问题,晕
#include<stdio.h>#include<string.h>
main()
{ int a[50][4],i,j,k,t,n,m;
char b[50][20],c[20];
printf(" input the number of students");
scanf("%d",&n);
for(i=0;i<n;i++)
{ printf("\n Enter the grade:");
scanf("%d %d %d",&a[i][0],&a[i][1],&a[i][2]);
a[i][3]=a[i][0]+a[i][1]+a[i][2];
printf("%d\n",a[i][3]);
}
for(i=0;i<n;i++) /一维数组表示二维数组/
{ printf("\n Enter the name:");
scanf("%s",&b[i]); ??????
printf("\n");
}
for(i=0;i<=n-1;i++)
{
k=i;
for(j=i+1;j<=n;j++)
if(a[k][3]<a[j][3]) k=j;
t=a[i][3];a[i][3]=a[k][3];a[k][3]=t;
strcpy(c,b[i]);
strcpy(b[i],b[k]);
strcpy(b[k],c);
}
for(i=0;i<n;i++)
{m=i+1;
printf("%d",m);
printf("%s",b[i]);
printf("%d\t",a[i][3]);
printf("\n");
}
}
在打???的地方,有问题:本来b[i]就是一个地址,为什么还要加个&符号,而且用
gets(b[i]);代替scanf("%s",&b[i]);总是出现错误