c语言趣味编程(8)冒泡排序

一、问题描述

对n个整数进行升序排列(数据由键盘键入)

二、设计思路

(1)读取从键盘键入的n个数据,存入数组a中;

(2)用for循环对数组a中的数据进行遍历,并用if语句来判断大小,按从小到大存入;

(3)遍历输出数组中已经完成升序排列的数组元素;

三、程序流程图

 

四、伪代码

五、代码

 1 #include <iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     int a[1000];
 6     int i = 0;
 7     while (cin >> a[i])
 8     {
 9         i++;
10         if (cin.get() == '\n') break;  //用来结束循环
11     }
12     for (int j = 0; j < i-1; j++)
13     {
14         for (int m = j + 1; m < i; m++)
15         {
16             if (a[j] >= a[m])   //完成数据的交换
17             {
18                 int temp = a[j];
19                 a[j] = a[m];
20                 a[m] = temp;
21             }
22         }
23     }
24     int count = 0;
25     for (int k = 0; k < i; k++)
26     {
27         cout << a[k]<<" ";
28         count++;   //来控制已输出数据的个数,为了美观
29         if (count % 5 == 0)
30         {
31             cout << endl;
32         }
33     }
34     return 0;
35 }

 

六、总结

(1)利用while循环输入不确定个数的元素时可以在while后面条件中用输入流对象,然后在下面循环体中用if判断,if(cin.get()==‘\n') break;来结束循环;

posted @ 2023-04-26 18:54  连师傅只会helloword  阅读(26)  评论(0编辑  收藏  举报