| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 481 人关注过本帖
标题:一个数组问题,晕
只看楼主 加入收藏
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
快速回复:一个数组问题,晕
数据加载中...
 
   



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

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