原题链接:[编程入门]自定义函数之整数处理
解题思路:
本题重点在数据处理上.
因为题意只要求:
(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语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复