C语言编程小练习6(数组篇)
6.1输入十个分数,去掉最高分和最低分后求平均分,保留一位小数。
1 #include<stdio.h>
2 int main(void)
3 {
4 int i;
5 double max, min, score[10], aver, sum;
6 sum = 0;
7 for(i = 0; i < 10; i++) {
8 scanf("%lf", &score[i]);
9 max = min = score[0];
10 sum += score[i];
11 if (max < score[i])
12 max = score[i];
13 if (min > score[i])
14 min = score[i];
15 }
16
17 aver = 1.0*( sum - max - min) / 8;
18 printf("average = %.1lf\n", aver);
19 return 0;
20 }
6.2输入10个数,采用冒泡排序方法对这10个数按升序排序,输出排序结果。
1 #include<stdio.h>
2
3 int main(void)
4 {
5 int i, j;
6 double a[10], tmp;
7 printf("Input 10 numbers: ");
8 for (i = 0; i < 10; i++)
9 scanf("%lf",&a[i]);
10 for (i = 1; i < 10; i++)
11 for (j = 0; j <10 - i; j++)
12 if (a[j] > a[j+1]) {
13 tmp = a[j];
14 a[j] = a[j+1];
15 a[j+1] = tmp;
16 }
17 for (i = 0; i < 10; i++)
18 printf("%6.1f", a[i]);
19 printf("\n");
20 return 0;
21 }
6.3输入10个数,采用改进的冒泡排序方法对这10个数按升序排序并输出。(所谓改进就是当排序过程中某次排序没交换数据(说明数据是有序的),提前终止排序)。
1 #include<stdio.h>
2
3 int main(void)
4 {
5 int i, j, f;
6 double a[10], tmp;
7 printf("Input 1