原题链接:二级C语言-最小绝对值
解题思路:
不调用math函数(如果没有懂得原理只会调用函数的后果你懂的)
本题意在考察我们数组数据的 录入,保存,查找,交换。
对于本题: 1.定义数组 a[20] //用于保存录入的数据
//申请20个空间是为了防止内存溢出(万一多输入了一个)
2.定义数组 b[20] //用于备份处理过后的数据(负数转化为正数)
//并不是所有人都知道math.h里面的函数
注意事项:
1.定义数组时一定要多申请空间。
参考代码:
#include<stdio.h> int main() { int a[20]={0},b[20]={0}; int i;//循环变量 int j=0;//记录最小值的位置 int min;//记录最小值 //录入并将负数转化为正数(处理过后的b数组是a数组取绝对值过后的) for(i=0;i<10;i++) { scanf("%d",&a[i]); b[i]=a[i]; //备份a数组数据到b数组 if(a[i]<0) //检测是否是负数 { b[i]=(-1)*a[i]; //如果是负数则将负数转化为正数再存入b数组 } } //查找最小值 min=b[0]; for(i=1;i<10;i++) { //用b数组是因为需要比较绝对值的大小 if(b[i]<min)//如果找到数组中元素小于min,则将此元素赋值给min,使min始终记录最小值 { min=a[i]; j=i; //记录此时最小值得位置 } } //交换最小值与最末尾数据的位置 a[j]=a[9]; a[9]=min; //输出处理完成的最终数据 for(i=0;i<10;i++) { printf("%d ",a[i]); } return 0; }
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复