| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 432 人关注过本帖
标题:[求助]构造数据类型一个题目请教
只看楼主 加入收藏
ajax_liu
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-6-16
收藏
 问题点数:0 回复次数:3 
[求助]构造数据类型一个题目请教

题目是,输入N个学生的学号,姓名,性别,地址信息和语文,数学,英语成绩,并输出3科成绩总分最高的学生的信息
下面是我写的程序:

#include <stdio.h>
#define N 3

main()
{
int i;
float MAX;

struct student
{
char no[15];
char name[15];
char sex[15];
char address[15];
float yw,ss,yy;
float total;
}stu[N];

for(i=0;i<N;i++)
printf("please input the %d student imformation(no,name,sex,address,yw,ss,yy)\n",i+1);
scanf("%s%s%s%s%f%f%f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].address,
&stu[i].yw,&stu[i].ss,&stu[i].yy);

for(i=0;i<N;i++)
stu[i].total=stu[i].yw+stu[i].ss+stu[i].yy;
scanf("%f\n",&stu[i].total);

if(stu[i].total>stu[MAX].total)MAX=i;

printf("no is %s,name is %s,sex is %s,add is %s,yw is %5.1f,ss is%5.1f,yy is %5.1f,total is%5.1f",
stu[MAX].no,stu[MAX].name,stu[MAX].sex,stu[MAX].address,stu[MAX].yw,stu[MAX].ss,stu[MAX].yy,stu[MAX].total);

getch();
}

我写好之后运行,发现第一个输出的内容printf("please input the %d student imformation(no,name,sex,address,yw,ss,yy)\n",i+1);
连续出现三行,而不是提示一个我输入一个,请问怎么改成提示一个输入一个的那种?
还有就是我应该怎么样输入?
我输入的它怎么运行都运行不出来,要怎么样输入才能正确输入?
200501 ajax boy shenzhen 78.0 89.0 62.0
200502 candy girl guangzhou 80.0 80.0 73.0
200503 jim boy beijing 72.0 64.0 99.0

by the way,我用的是WIN-TC

请大侠指教

[此贴子已经被作者于2007-7-14 18:35:07编辑过]

搜索更多相关主题的帖子: 构造 类型 数据 
2007-07-14 18:28
yohji
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2007-7-14
收藏
得分:0 
1. 不是main(),而是int main(void)。
2. for后面不带花括号的话,其实只有一句在循环中。你想让多于一句放进去的话,加上花括号。
3. 你用错了scanf里的格式化字符串。请查一下手册。

http:///
2007-07-14 19:42
ZSXCT
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-7-10
收藏
得分:0 

for(i=0;i<N;i++)
{printf("please input the %d student imformation(no,name,sex,address,yw,ss,yy)\n",i+1);
scanf("%s%s%s%s%f%f%f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].address,
&stu[i].yw,&stu[i].ss,&stu[i].yy);}
结构体付值好象不对
for(i=0;i<N;i++)
{stu[i].total=stu[i].yw+stu[i].ss+stu[i].yy;

if(stu[i].total>stu[MAX].total)MAX=i;}

2007-07-15 17:48
ZSXCT
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-7-10
收藏
得分:0 

"%s%d%d"输入时用空格,和你原题不同,希望给你一些启示,谢谢
struct student
{char name[10];
int score[2];
int total;
} stu[2];
main()
{struct student stu[2];
int i;
int max=0;
for(i=0;i<2;i++)

{ printf("input the %d",i+1);
scanf("%s%d%d",stu[i].name,&stu[i].score[0],&stu[i].score[1]); }
for(i=0;i<2;i++)
{stu[i].total=stu[i].score[0]+stu[i].score[1];
printf("\n%s %d",stu[i].name,stu[i].total); }

for(i=0;i<2;i++)
{if(stu[max].total<stu[i].total)
max=i;}
printf("\n%s%d",stu[max].name,stu[max].total);
}

2007-07-16 00:41
快速回复:[求助]构造数据类型一个题目请教
数据加载中...
 
   



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

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