| 发表于: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后光标自动跳转到下一行显示: 第二名学生成绩是:) |
|
|
|
|