当前位置: 代码迷 >> C语言 >> [求助]简单问题 输入输出 错误请指正
  详细解决方案

[求助]简单问题 输入输出 错误请指正

热度:687   发布时间:2007-08-08 15:27:00.0
[求助]简单问题 输入输出 错误请指正
输入一个学生的姓名,学号,英语成绩,数学成绩,计算机成绩
输出学生的姓名,学号,平均分

#include<stdio.h>
main()
{ char name;
int num,e,m,c;
float a;
printf("Enter:");
scanf("%s,%d,%d,%d,%d",&name,&num,&e,&m,&c);
a=(e+m+c)/3;
printf("name=%s,num=%d,avg=%.2f\n",name,num,a);
}
搜索更多相关的解决方案: 英语  数学  计算机  num  简单问题  

----------------解决方案--------------------------------------------------------
简单的讲,程序没有错误,但是你的a是定义成float型,因此a=(e+m+c)/3这条语句要用强制转换 a=(float)(e+m+c)/3;
----------------解决方案--------------------------------------------------------
char name??%s??
----------------解决方案--------------------------------------------------------
#include<stdio.h>
main()
{
int num,e,m,c;
float a;
clrscr();
printf("Enter:");
scanf("%d,%d,%d,%d",&num,&e,&m,&c);
a=(e+m+c)/3;
printf("num=%d,avg=%.2f\n",num,a);
}
你删掉名字的输入试下,问题就在NAME 的类型!

[此贴子已经被作者于2007-8-8 16:19:48编辑过]


----------------解决方案--------------------------------------------------------
你把name定义成char
又用%s输入输出.....
不知道说什么了

二楼说了另一个问题
----------------解决方案--------------------------------------------------------
原来二楼也是hust的啊,还碰到校友了
----------------解决方案--------------------------------------------------------

name 定义是有问题
应该是:char name[10];


----------------解决方案--------------------------------------------------------
#include<stdio.h>
main()
{ char name[15]; /*名字用字符树组的*/
long num; /*学号用长整型定义吧*/
float e,m,c; /*分数用浮点型*/
float a;
printf("Enter:");
scanf("%s%d%f%f%f",name,&num,&e,&m,&c); /* 输入这里的%s%d%d之间最好不要有任何符号*/
a=(e+m+c)/3;
printf("name=%s,num=%d,avg=%.2f\n",name,num,a);
}
你的代码中,e,m,c是整型,而ave是浮点型,得不到精确的结果,试着1 2 4这三个分数.
----------------解决方案--------------------------------------------------------

把name定义为字符数组就可以了,用gets()读入name.另外还要注意一下输入时用逗号隔开,最好把不同类型的数据分别输入!


----------------解决方案--------------------------------------------------------
以下是引用melodylsp在2007-8-8 16:33:00的发言:
原来二楼也是hust的啊,还碰到校友了

你咋知道的啊??


----------------解决方案--------------------------------------------------------
  相关解决方案