| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 814 人关注过本帖
标题:[求助]一个简单却易犯错的scanf输入
只看楼主 加入收藏
qq110224037
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-5-7
收藏
 问题点数:0 回复次数:10 
[求助]一个简单却易犯错的scanf输入
从键盘 输入3学生数据
要求有 姓名 学号 三门课成绩 (关于结构体的题。谁能用scanf+一个for循环就把所有的数据输入进去呢?)

[此贴子已经被作者于2007-5-17 11:07:40编辑过]

搜索更多相关主题的帖子: scanf 输入 
2007-05-17 11:06
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 

for(i=0;i<3;i++)
{
scanf("%s%s%d%d%d",s1,s3,&a,&b,&c);
如果还是不行就加一个
fflush(stdin)
}


2007-05-17 11:09
qq110224037
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-5-7
收藏
得分:0 
回复:(qq110224037)[求助]一个简单却易犯错的scanf...
是一个这样的结构。如下 现在要求从键盘输入3学生数据,要求有姓名 ,性别,三门成绩。并输出性别 姓名,三门成绩总平均成绩以及输出最高分和拿最高分的学生姓名
void main()
{
struct pu \*结构名*\
{char name[8];\*姓名*\
char sex[2];\*性别*\
float a1;\*英语成绩*\
float a2;\*数学成绩*\
float a3;\*语文成绩*\
}s[3];\*定义数组形结构变量*\
}

[此贴子已经被作者于2007-5-17 12:23:30编辑过]

2007-05-17 12:01
深渊菜鸟
Rank: 1
等 级:新手上路
威 望:1
帖 子:241
专家分:0
注 册:2007-5-4
收藏
得分:0 
我也是初学者~我想问上二楼;你那还能清晰点么~我还是不会用你的!

未来的路还很长.......不要轻言放弃.. 明天还有明天的路要走.......否则对不起自己
2007-05-17 12:05
玉杰天
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-4-17
收藏
得分:0 

fflush(stdin) 第一次看到这个函数!刚刚在网上查了下!就放这里吧!


fflush( ) 函数

刷新低级函数打开的文件内容,并将它写入磁盘。

语法

FFLUSH(nFileHandle)

参数

nFileHandle

指定输出到磁盘的刷新文件的句柄。

返回值类型
逻辑型

说明
fflush( ) 函数释放此文件缓冲区所占用的内存。
FLUSH 命令与 fflush( ) 函数不同。FLUSH 命令不对低级文件操作,而对表和索引进行操作.

原始连接:http://jsjzx.yzu.edu.cn/jsjzx/jyn/wtm/vfphelp/lngfflushlp_rp.htm


痛快编程,无限收获! http://hi.baidu.com/rect
2007-05-17 15:02
china008
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2007-5-8
收藏
得分:0 

试试这个:
for(i=0;i<3;i++)
{
scanf("%s%c%d%d%d",s[i].name,s[i].sex,s[i].a1,s[i].a2,s[i].a3);

}

不行就加个 &:
for(i=0;i<3;i++)
{
scanf("%s%c%d%d%d",&s[i].name,&s[i].sex,&s[i].a1,&s[i].a2,&s[i].a3);

}


2007-05-17 15:19
wentaiyou
Rank: 2
等 级:论坛游民
帖 子:68
专家分:17
注 册:2004-12-3
收藏
得分:0 

#define NUM 2
main()
{
int i,k;
struct student
{
char name[10];
char sex[2];
int english;
int math;
int chinese;
int pj;
};
struct student pu[NUM];
for(i=0;i<NUM;i++)
{ printf("\nthe %d student:\n",i+1);

printf("please inter name:");
scanf("%s",pu[i].name);

printf("please inter sex:");
scanf("%s",pu[i].sex);

printf("please inter english:");
scanf("%d",&pu[i].english);

printf("please inter math:");
scanf("%d",&pu[i].math);

printf("please inter chinese:");
scanf("%d",&pu[i].chinese);

pu[i].pj=(pu[i].english+pu[i].math+pu[i].chinese)/3;
}

for(i=0;i<NUM;i++)

for(i=0;i+1<NUM;i++)
{if(pu[i].pj>pu[i+1].pj) k=i; else k=i+1;}

printf("\n%s,%s,%5d,%5d,%5d,pj=%d\n",pu[k].name,pu[k].sex,pu[k].english,pu[k].math,pu[k].chinese,pu[k].pj);

}


假如回到过去.我能做些什么? 还是和现在这样有时间没事情?
2007-05-17 17:05
aoaoaoao
Rank: 1
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-5-14
收藏
得分:0 

for(i=0;i<3;i++)
{
scanf("%s %c %f %f %f",s[i].name,s[i].sex,&s[i].a1,&s[i].a2,&s[i].a3);

}

"%s %c %f %f %f" //中间有空格

2007-05-17 17:11
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
7楼的不错,呵呵,向你学习啊

学习需要安静。。海盗要重新来过。。
2007-05-17 17:43
qq110224037
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-5-7
收藏
得分:0 
回复:(qq110224037)[求助]一个简单却易犯错的scanf...

感谢大家关注,特别谢谢7楼--你是最棒的 (呵呵~~~~~~~~~

2007-05-18 08:02
快速回复:[求助]一个简单却易犯错的scanf输入
数据加载中...
 
   



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

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