求c大佬指点 我输出呢??
#include<stdio.h>int main()
{
int g;
int i,j,max=0,hang,lie,emax,t;
char name;
float sum=0;
for(i=0;i<2;i++)
{
printf("xm:");
scanf("%s",name);
for(j=0;j<2;j++)
{
printf("cj:");
scanf("%d",&g);
sum=sum+g;
if(g>max)
{
max=g;
hang=i;
lie=j;
emax=max; //这里是给每个同学的最高成绩赋值
}
}
}
printf("av=%.2f\n",sum/4);
printf("max=%d\n",max);
printf("在%d行%d列\n",hang+1,lie+1);
for(t=0;t<2;t++)
{
printf("%s的最高成绩是:%d",name,emax); //这句是输出每个同学的最高成绩
}
return 0;
}
结尾的for那句输出了一行空格然后就结束了。。。
哪里有毛病?求指点 谢谢!
我看你的程序中name的目的是存放名字,scanf("%s")的用法错误了
%s对应的应该是地址,你存的是两个人的名字,就应该使用二维数组
#include<stdio.h>
int main()
{
int g;
int i,j,max=0,hang,lie,emax,t;
char name;
float sum=0;
for(i=0;i<2;i++)
{
printf("xm:");
scanf("%s",name);
for(j=0;j<2;j++)
{
printf("cj:");
scanf("%d",&g);
sum=sum+g;
if(g>max)
{
max=g;
hang=i;
lie=j;
emax=max; //这里是给每个同学的最高成绩赋值
}
}
}
printf("av=%.2f\n",sum/4);
printf("max=%d\n",max);
printf("在%d行%d列\n",hang+1,lie+1);
for(t=0;t<2;t++)
{
printf("%s的最高成绩是:%d",name,emax); //这句是输出每个同学的最高成绩
}
return 0;
} 一个单位的字符数组只能存放一个字符,像名字这种字符串是占用好几个字节的,比如说你输入qqqq,那么最少需要name去存储,因为除了四个q之外,还需要'/0'结束符,这是系统自动加的 然后你输入的是两个名字,就需要的是二维数组,传入scanf("%s")的就是每个一维的地址 本帖最后由 头发 于 2020-10-28 19:29 编辑
小甲鱼的铁粉 发表于 2020-10-28 19:25
一个单位的字符数组只能存放一个字符,像名字这种字符串是占用好几个字节的,比如说你输入qqqq,那么最少需 ...
大佬 懂了 谢谢!! 头发 发表于 2020-10-28 19:27
大佬 懂了 谢谢!!
记得给最佳答案哦{:10_297:} 小甲鱼的铁粉 发表于 2020-10-28 19:22
我看你的程序中name的目的是存放名字,scanf("%s")的用法错误了
%s对应的应该是地址,你存的是两个人的名 ...
我试了下学生是a和b
输出结果为
b的最高成绩是:
的最高成绩是:
怎么改呀 头发 发表于 2020-10-28 19:32
我试了下学生是a和b
输出结果为
b的最高成绩是:
我看一下 我是这样输入的aaaa
2
1
bbbb
3
4
小甲鱼的铁粉 发表于 2020-10-28 19:41
我是这样输入的
结果和我说的一样吗 ?我刚才试了下还是那样
bbbb的最高成绩是:2
的最高成绩是:4 xm:cj:cj:xm:cj:cj:av=2.50
max=4
在2行2列
aaaa的最高成绩是:2
bbbb的最高成绩是:4
这是我的输出。。。。{:10_277:}
好奇怪 小甲鱼的铁粉 发表于 2020-10-28 19:44
这是我的输出。。。。
好奇怪
我用的dev c++ 为啥会不一样嘞、、、、???? 最佳给了谢谢啦 头发 发表于 2020-10-28 19:47
我用的dev c++ 为啥会不一样嘞、、、、???? 最佳给了谢谢啦
我用dev试试 小甲鱼的铁粉 发表于 2020-10-28 19:47
我用dev试试
嗯嗯 麻烦了 xm:AAAA
cj:100
cj:100
xm:BBBB
cj:99
cj:99
av=99.50
max=100
在1行1列
AAAA的最高成绩是:100BBBB的最高成绩是:-1
--------------------------------
Process exited after 13.91 seconds with return value 0
请按任意键继续. . .
这是dev的结果{:10_277:}{:10_277:} 用的机房的电脑,只能这样截图了 小甲鱼的铁粉 发表于 2020-10-28 19:59
用的机房的电脑,只能这样截图了
有点bug,b成绩那里,应该这样
#include<stdio.h>
int main()
{
int g;
int i,j,max=0,hang,lie,emax,t;
char name;
float sum=0;
for(i=0;i<2;i++)
{
max = 0;
printf("xm:");
scanf("%s",name);
for(j=0;j<2;j++)
{
printf("cj:");
scanf("%d",&g);
sum=sum+g;
if(g>max)
{
max=g;
hang=i;
lie=j;
emax=max; //这里是给每个同学的最高成绩赋值
}
}
}
printf("av=%.2f\n",sum/4);
printf("max=%d\n",max);
printf("在%d行%d列\n",hang+1,lie+1);
for(t=0;t<2;t++)
{
printf("%s的最高成绩是:%d",name,emax); //这句是输出每个同学的最高成绩
}
return 0;
}
页:
[1]