解题思路: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.0分

5 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 5 条评论

孤鸿悬影 3年前 回复TA
@暴走哈士奇 #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头文件,再用绝对值就可以了
暴走哈士奇 3年前 回复TA
#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;
 } 
各位大佬帮我看看哪里错了~
孤鸿悬影 3年前 回复TA
@禾安 。。。不知道为啥平了。就是把那个s[e]=s[9];  s[9]=d;改成 i=s[e]; s[e]=s[9]; s[9]=i;
孤鸿悬影 3年前 回复TA
@禾安 的确,为了省事就直接换了现在改了一下#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]);     } }
禾安 3年前 回复TA
这个错了   如果绝对值最小的数是负数  比如-1,输出的时候就是1了而不是-1