原题链接:二级C语言-最小绝对值
解题思路:4次循环进行分析
注意事项:
参考代码:
#include<stdio.h>
#include<math.h>
int main(){
int a,b,c,d,e,h,i;
int s[10];
int p[10];
for(a=0;a<10;a++){
scanf("%d",&s[a]);
p[a]=abs(s[a]);
}
d=p[0];
for(b=0;b<10;b++){
if(p[b]<d){
d=p[b];
}
}
for(e=0;e<10;e++){
if(abs(s[e])==abs(d)){
i=s[e];
s[e]=s[9];
s[9]=i;
}
}
for(h=0;h<10;h++){
printf("%d ",s[h]);
}
}0.0分
5 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
@暴走哈士奇 #include<stdio.h> #include<math.h> int main() { int a[10],i,min,t,temp; for(i=0;i<10;i++) { scanf("%d",&a[i]); } min=abs(a[0]),t=0; for(i=0;i<9;i++) { if(min>abs(a[i+1])) { min=a[i+1];t=i+1; } } temp=a[t]; a[t]=a[9]; a[9]=temp; for(i=0;i<10;i++) { printf("%d ",a[i]); } return 0; } 题目的要求不是传入的值为正的,题目要求的是他的绝对值,如果这样输出那原本输入的是负数,输出变为正数了,加个math.h头文件,再用绝对值就可以了#include<stdio.h> int main() { int a[10],i,min,t,temp; for(i=0;i<10;i++) { scanf("%d",&a[i]); if(a[i]<0) a[i]=-a[i]; } min=a[0],t=0; for(i=0;i<9;i++) { if(min>a[i+1]) {min=a[i+1];t=i+1; } } temp=a[t]; a[t]=a[9]; a[9]=temp; for(i=0;i<10;i++) { printf("%d ",a[i]); } return 0; } 各位大佬帮我看看哪里错了~@禾安 的确,为了省事就直接换了现在改了一下#include<stdio.h> #include<stdlib.h> int main(){ int a,b,c,d,e,h,i; int s[10]; int p[10]; for(a=0;a<10;a++){ scanf("%d",&s[a]); p[a]=abs(s[a]); } d=p[0]; for(b=0;b<10;b++){ if(p[b]<d){ d=p[b]; } } for(e=0;e<10;e++){ if(abs(s[e])==abs(d)){ i=s[e]; s[e]=s[9]; s[9]=i; } } for(h=0;h<10;h++){ printf("%d ",s[h]); } }