读书人

如何可以自动输出

发布时间: 2012-03-08 13:30:13 作者: rapoo

怎么可以自动输出
小菜鸟编写了一个小程序,从键盘输入10个学生的成绩,用冒泡法按照从高到低排序输出。

#include <iostream.h>
#defineN 10

voidmain()
{
ints[N],t,j,i;
cout < < "请输入10个学生的成绩! ";
cout < < "将从高到低排序输出成绩。 " < <endl;
for(i=0;i <N;i++)//输入10个学生的成绩
{
cout < < "第 " < <i+1 < < "名学生成绩是: ";
cin> > s[i];
if((s[i] <0) || (s[i]> 100))//控制分数在0-100间
{
cout < < "error!请输入0--100间的数。\n\n ";
cout < < "第 " < <i+1 < < "名学生成绩是: ";
cin> > s[i];
}
}
for(j=1;j <N-1;j++)//冒泡法排序成绩(大--小)
{
for(i=N-1;i> =j;i--)
if(s[i]> s[i-1])
{
t=s[i];
s[i]=s[i-1];
s[i-1]=t;
}
}
cout < < "按照从大到小排序后如下: ";
for(i=0;i <N;i++)
{

cout < <s[i] < < " ";
}
cout < <endl;
}

运行程序,结果:第一名学生成绩是:(输入)89 再按回车
第二名学生成绩是:(输入)68 再按回车
。。。。。。
问题是,如果一行输入多个数。如: 78 98 54
之后输出就不正确。能否在键盘输入一个数后,程序就会自动换行显示下一条信息。
比如:第一名学生成绩是:89 (输入89后光标自动跳转到下一行显示: 第二名学生成绩是:)

[解决办法]
主要难点在于cin,他必须等回车的。如果你想实现这个,你必须接管整个console输入,用getch获得输入,并且自己进行字符串parsing

读书人网 >C++

热点推荐