首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

如何可以自动输出

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

怎么可以自动输出
小菜鸟编写了一个小程序,从键盘输入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

热点排行