您的位置:程序门 -> c/c++ -> c++ 语言



怎么可以自动输出


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


怎么可以自动输出[已结贴,结贴人:wuyan16001]
发表于:2007-09-04 00:12:54 楼主
小菜鸟编写了一个小程序,从键盘输入10个学生的成绩,用冒泡法按照从高到低排序输出。

#include <iostream.h>
#define n   10

void main()
{
int s[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后光标自动跳转到下一行显示:   第二名学生成绩是:)
发表于:2007-09-04 00:15:491楼 得分:0
cin> > s[i];   后面加句   cout < < "\n ";
发表于:2007-09-04 00:46:042楼 得分:0
没办法,只能输入一个回一次车了。
要么你就要控制键盘的每一个键的输入……那就麻烦了。
发表于:2007-09-04 00:51:313楼 得分:0

自己敲回车把
发表于:2007-09-04 10:26:184楼 得分:0
没有办法的,程序不可能自动的,它怎么知道你输入的是一位数,还是两位数?
发表于:2007-09-04 10:33:595楼 得分:15
主要难点在于cin,他必须等回车的。如果你想实现这个,你必须接管整个console输入,用getch获得输入,并且自己进行字符串parsing
发表于:2007-09-04 10:37:576楼 得分:0
格式化输入.


快速检索

最新资讯
热门点击