| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7090 人关注过本帖
标题:[求助]如何用SCANF实现循环输入?
只看楼主 加入收藏
zqj417
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2006-2-16
收藏
 问题点数:0 回复次数:7 
[求助]如何用SCANF实现循环输入?

只输入了一行就结束了,后面结果也不对,那位大侠能给个循环输入的例子,谢谢






/****成绩统计系统****/
/*编写程序.从键盘输入6名学生的5门成绩,分别统计出
每个学生的平均成绩。
例如:
键盘输入

95 70 73 67 64<CR>
60 65 77 86 90<CR>
71 93 63 80 90<CR>
87 83 91 95 89<CR>
100 93 89 92 85<CR>
52 63 66 70 71<CR>

运行结果
No.1ave=73.80
No.2ave=75.60
No.3ave=79.40
No.4ave=89.OO
No.5ave=91.80*/
/*-第0步-:包含头文件并定义主函数*/
#include<stdio.h>
main()
{
int i;
float v1,v2,v3,v4,v5,i1,i2,i3,i4,i5;
for(i=1;i<=6;i++)
{scanf("%d %d %d %d %d",&i1,&i2,&i3,&i4,&i5);
switch(i){
case 1 : v1=(i1+i2+i3+i4+i5)/5;break;
case 2 : v2=(i1+i2+i3+i4+i5)/5;break;
case 3 : v3=(i1+i2+i3+i4+i5)/5;break;
case 4 : v4=(i1+i2+i3+i4+i5)/5;break;
case 5 : v5=(i1+i2+i3+i4+i5)/5;break;
default:;}
printf(:\n);
}
for(i=1;i<=6;i++)
switch(i){
case 1 : printf("\nNO. V1=%f",v1);break;
case 2 : printf("\nNO. V2=%f",v2);break;
case 3 : printf("\nNO. V3=%f",v3);break;
case 4 : printf("\nNO. V4=%f",v4);break;
case 5 : printf("\nNO. V5=%f",v5);break;
default:;}
}

搜索更多相关主题的帖子: SCANF 输入 
2006-02-21 16:33
aiyuheng
Rank: 1
等 级:新手上路
威 望:1
帖 子:656
专家分:0
注 册:2006-1-12
收藏
得分:0 
#include<stdio.h>
int main(void)
{
int v1,v2,v3;
int i;
for (i=0;i<3;i++)
{
scanf("%d %d %d",&v1,&v2,&v3);
printf("%d %d %d\n",v1,v2,v3);
}
return 0;
getch();
}
你是这个意思吗??
没太明白你要什么?
我觉得你的程序为什么不用数组做呢??
这样写多烦琐啊!

when i want to ask anyone,i will ask myself first.
2006-02-21 17:20
zhangjuan
Rank: 1
等 级:新手上路
帖 子:992
专家分:0
注 册:2006-1-19
收藏
得分:0 

不知道那里错了
#include<stdlib.h>
main()
{int a[6][5],sum=0,v=0;
int i,j;

for(i=0;i<6;i++)
{
for(j=0;j<5;j++)
{printf("请输入第%d个同学%d门成绩:",i+1,j+1);
scanf("%d",&a[i][j]);
sum+=a[i][j];
}
v=sum/5;
printf("%d\n",v);
}
getch();
}

为什么不对呢?


2006-02-21 19:54
khhily
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-2-20
收藏
得分:0 

在第一个for循环开始时加上一句sum=0;就行了,

for(i=0;i<6;i++)
{
sum=0;
for(j=0;j<5;j++)
{printf("请输入第%d个同学%d门成绩:",i+1,j+1);
scanf("%d",&a[i][j]);
sum+=a[i][j];
}
v=sum/5;
printf("%d\n",v);
}


2006-02-21 21:03
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

每次清理下缓冲区,不然每次\n影响下次输入


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-02-21 21:55
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
main ()
{
int a[5][5];
int i,j,k=0;
float f;
for (i=0;i<5;i++)
for (j=0;j<5;j++)
{printf("please put in the NO.%d mark of the NO.%d subject:",j+1,i+1);
scanf("%d",&a[i][j]); }
for (i=0;i<5;i++)
{for (j=0;j<5;j++)
k=k+a[i][j];
f=k/5.0;
k=0;
printf ("The average mark of the NO.%d subject is : %5.2f\n",i+1,f); }
getch ();
}


是不是要这个结果..我也不太理解..反正就写成这样了..不就是

统一输入 成绩..最后统一输出 平均成绩嘛

[此贴子已经被作者于2006-2-22 14:12:41编辑过]


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-02-22 11:16
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
for(i=0;i<6;i++)
三楼 .这为什么是 6啊 那样的话不就是6科了嘛..

他不就要5科嘛..定义数组的时候 应该行 和列都是5 吧~~

[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-02-22 11:42
快速回复:[求助]如何用SCANF实现循环输入?
数据加载中...
 
   



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

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