挑战作业

7-1 冒泡法排序 (10 分)
输入1个正整数n(1<=n<=10),然后输入n个整数并存放在数组中,将这n个整数从大到小排序后输出,相邻数字间有一个空格,行末不得有多余空格。
输入格式:
输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。
输出格式:
在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。
输入样例:
4
75 71 77 76
输出样例:
77 76 75 71
代码:

include<stdio.h>

int main (void)
{
int i, j, n, temp=0;
int a[10];
char op = ' ';
scanf ("%d", &n);

for(i=0; i<n; i++)
{
scanf ("%d", &a[i]);
}
for(i=1; i<n; i++)
{
for(j=0; j<n-i; j++)
{
if(a[j]<a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
printf ("%d",a[0]);
for(i=1; i<n; i++)
{
printf ("%c%d",op,a[i]);
}
printf ("\n");
流程图:

运行截图:

问题及解决办法:
这个题最主要的就是把相邻的数互换,然后再让小的那个数去和后面的那个数比较,如果后面的数比前面的数大,那么就交换。
学习进度:
|日期|这周时间||代码行数|所学知识点|目前的问题|
|--------|----------|----------|---------|---------|
|3/4-3/10|一个小时|30|编写程序时处理文件|没啥大问题|
|3/11-3/15 | 一个小时 | 60 | 二维数组的基本结狗 |二维数组的运用还存在稍许疑惑|
| 3/17-3/22 | n个小时 | 几百行 | 选择排序和冒泡排序 | 选择排序和冒泡排序的程序实在太长了容易出错|
感悟:
这周的学习主要还是数组,相比于上周这周的作业难度大些,特别是基础题的第二题,因为存在相同的数,所以我改了很久,也想了很久,最后很艰难的解决了,很不容易。

posted @ 2019-03-22 21:00  时倾!  阅读(127)  评论(0编辑  收藏  举报