主题:指针SOS
316971451
[专家分:30] 发布于 2011-03-17 09:23:00
为什么我每次只能输入一组数据??/
#include <stdio.h>
void main()
{ void search(float(*o)[5],int M);
void aver(float (*p)[5], float n);
float a[3][5];
int i,j,N;
printf("请输入3个同学的5们成绩\n");
for(i=0;i<3;i++)
{
printf("请输入第%d几个同学的成绩\n",i+1);
for(j=0;j<5;j++)
{
scanf("%5.2f\n",a[i][j]);
}
}
printf("输入要查的同学学号\n");
scanf("%d",N);
search(a,N);
aver(a,5,N);
}
void aver(float (*p)[5], float n,int N)
{
int i;
float sum=0,pingjun;
for(i=0;i<5;i++)
{
sum+=*(*(p+N)+i);
}
pingjun=sum/n;
printf("平均分是%5.2f", pingjun);
}
void search(float(*o)[5],int M)
{
int i;
printf("第%d的成绩是",M);
for(i=0;i<5;i++)
printf("%5.2f",*(*(o+M)+i));
}
回复列表 (共8个回复)
沙发
fragileeye [专家分:1990] 发布于 2011-03-17 12:24:00
算法不看,scanf中‘ &’ lz 可注意到了么、、
板凳
316971451 [专家分:30] 发布于 2011-03-17 12:37:00
额 你赢了 这是我忘了,不过貌似还不对啊啊 求解。。。[em15]
3 楼
fragileeye [专家分:1990] 发布于 2011-03-17 20:21:00
scanf的用法建议lz先查查、、scanf("%5.2f\n",&a[i][j]);
这样的语句合法么?函数不看,因为lz需要自己解决问题的空间额、、
4 楼
316971451 [专家分:30] 发布于 2011-03-17 22:17:00
e晕哦 看来我郁闷了 把它当成printf了 不过这该了会对吗 ??/不会iba
不是这问题啊
5 楼
fragileeye [专家分:1990] 发布于 2011-03-17 23:10:00
查scanf。顺便多了解下它的其他用法以及注意情况!
6 楼
316971451 [专家分:30] 发布于 2011-03-18 15:48:00
可是就算这没问题 ,也不对啊
7 楼
fragileeye [专家分:1990] 发布于 2011-03-20 16:45:00
这个你写的我没怎么改动,你仔细对着看看,lz可曾注意到编译器报错的地方、、
[code=c]
#include <stdio.h>
void search(float(*)[5],int );
void aver(float (*)[5], float ,int);
int main()
{
float a[3][5];
int i,j,N;
printf("请输入3个同学的5们成绩\n");
for(i=0;i<3;i++)
{
printf("请输入第%d个同学的成绩\n",i+1);
for(j=0;j<5;j++)
{
scanf("%f",&a[i][j]);
}
}
printf("输入要查的同学学号\n");
scanf("%d",&N);
search(a,N);
aver(a,5,N);
return 0;
}
void aver(float (*p)[5], float n,int N)
{
int i;
float sum=0,pingjun;
for(i=0;i<5;i++)
{
sum+=*(*(p+N)+i);
}
pingjun=sum/n;
printf("平均分是%5.2f", pingjun);
}
void search(float(*o)[5],int M)
{
int i;
printf("第%d的成绩是",M);
for(i=0;i<5;i++)
printf("%5.2f",*(*(o+M)+i));
}[/code]
8 楼
316971451 [专家分:30] 发布于 2011-03-20 22:19:00
呵呵 由于太激动。我知道在scanf里中的写错啦,,,虽然你说的迟 我表示谢了 [em2]
我来回复