解题思路:1.提前自定义最大值函数,最小值函数
2.利用for循环依次比较10个数,选出最小值并用 j 记录位置,将 arr[0] 与 arr[j] 互换其值
3.同样利用上述思想实现 arr[9] 与最大值互换
注意事项:在查找的过程中仅做查找,不做值的交换(与冒泡排序有区别)
参考代码:
# include <stdio.h>
int max(int x,int y)
{
return x>y?x:y;
}
int min(int a,int b)
{
return a<b?a:b;
}
int main()
{
int arr[10];
int m,n,i,j=0;
for(i=0;i<10;i++){
scanf("%d",&arr[i]);
}
m=arr[0];
n=arr[9];
for(i=1;i<10;i++){
m=min(m,arr[i]);
if(m==arr[i]){ //判断此时的arr[i]是否为最小值,若是则用 j 记录其位置
j=i;
}
}
arr[j]=arr[0]; //将最小值与第一个数的位置互换
arr[0]=m;
for(i=0;i<9;i++){
n=max(n,arr[i]);
if(n==arr[i]){ //判断此时的arr[i]是否为最大值,若是则用 j 记录其位置
j=i;
}
}
arr[j]=arr[9]; //将最小值与第一个数的位置互换
arr[9]=n;
for(i=0;i<10;i++){
printf("%d ",arr[i]);
}
return 0;
}
0.0分
0 人评分
printf基础练习2 (C语言代码)浏览:648 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:657 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:695 |
【出圈】 (C语言代码)浏览:590 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:1555 |
字符串问题 (C语言代码)浏览:1635 |
剪刀石头布 (C语言代码)不知道怎么直接在scanf中用枚举变量浏览:1436 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:669 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:584 |
wu-理财计划 (C++代码)浏览:907 |