解题思路:
本题重点在数据处理上.
因为题意只要求:
(1)最小值与第一个数交换( min
(2)最大值与最后一个数交换( max
因而最好是先判断完哪个最大,哪个最小,然后再进行交换(判断完,再交换),如果边判断边交换就容易出错。
注意事项:
本题难点在当最大值刚好是第一个数,即n[0],普通的写法就容易出错。
比如:16 9 8 7 5 1 4 12 10 13
第一次交换(n[0]
第二次交换(n[9]
明显错了!
所以要考虑最大值是第一个数的特殊情况,即当max=0时,交换改成:(n[9]
如此,即可得到正确答案:1,9,8,7,5,13,4,12,10,16
参考代码:
#include int n[10]; void get_data() { int i; for( i=0; i<10; i++ ) scanf("%d", &n[i]); } void process_data(int x[]) { int i, j, min, max, tmp; min = max = 0; for( j=1; j n[j] ) min = j; if( n[max] < n[j]) max = j; } tmp = n[min]; n[min] = n[0]; n[0] = tmp; if( max == 0 ) max = min; tmp = n[max]; n[max] = n[9]; n[9] = tmp; } void put_data() { for( int i=0; i<10; i++ ) printf( "%d ", n[i]); printf("\n"); } int main() { get_data(); process_data(n); put_data(); return 0; }
0.0分
1 人评分
矩阵乘法 (C++代码)浏览:1454 |
Pascal三角 (C语言代码)浏览:1182 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:578 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:505 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:840 |
蛇行矩阵 (C语言代码)浏览:524 |
Tom数 (C语言代码)浏览:725 |
1051(奇了怪了)浏览:645 |
演讲大赛评分 (C语言代码)浏览:1629 |
C语言程序设计教程(第三版)课后习题10.1 (C语言代码)浏览:530 |