标题:一个数组问题,晕
只看楼主
ximson
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-5-25
 问题点数:0 回复次数:4 
一个数组问题,晕
#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]);总是出现错误
搜索更多相关主题的帖子: include Enter number 
2008-05-27 16:54
伤心的我
Rank: 1
等 级:新手上路
帖 子:82
专家分:0
注 册:2008-5-24
得分:0 
b[i]是一个数组值了,如果用b数组名就可以,因为它就是数组的起始元素_a[1],也可以用指针
2008-05-27 17:05
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
得分:0 
我写scanf("%s",b[i]);很正常啊……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-05-27 17:10
smltq
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:566
专家分:400
注 册:2008-1-21
得分:0 
在打???的地方,有问题:本来b[i]就是一个地址,为什么还要加个&符号,而且用
gets(b[i]);代替scanf("%s",&b[i]);总是出现错误

把gets(b[i]) 改成gets(&b[i])就没问题了

数组的首址可以不加地址运算符````给数组的单个元素赋值当然要加喽
2008-05-27 18:53
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
得分:0 
LS的,b是个二维数组,其元素是个一维数组,而且可以自动退化为指针,所以无论是gets还是scanf,都是可以不加&的……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-05-27 18:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-216172-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.592255 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved