变形金刚本钢


私信TA

用户名:uq_45483535483

访问量:2470

签 名:

冯武伟

等  级
排  名 3767
经  验 1848
参赛次数 6
文章发表 3
年  龄 0
在职情况 学生
学  校
专  业 网络工程

  自我简介:

解题思路:

先把数组元素全部换算至对应的绝对值放进另一个数组,然后遍历比较换算为绝对值之后的数组,找出最小值的下标,用来方便与最后一个元素进行交换,最后输出原来的数组。到这里相信大家都会做了吧!!
注意事项:
注意题目说的是绝对值

参考代码:

//二级C语言-最小绝对值

#include<stdio.h>

#include<math.h>

int main()

{

    int a[10],s[10];

    int t;

    int temp;

    for(int i=0;i<10;i++){

    scanf("%d",&s[i]);

    a[i]=abs(s[i]);//这里换算绝对值

    }

    int min=a[0];

    for(int i=1;i<=9;i++){

    if(min>a[i]){

    min=a[i];//这里遍历比较找最小值

t=i;//这里是下标

    }

    }

    temp=s[t];

    s[t]=s[9];

    s[9]=temp;//这里与最后的元素进行交换

    for(int j=0;j<10;j++){

    // if(j==9){

    // printf("%d",a[9]);

    // break;//

    // }

    printf("%d ",s[j]);//最后输出就可以啦

    }

    return 0;

}


 

0.0分

3 人评分

  评论区

#include<stdio.h>
#include<math.h>
int main()
{
    int a[10];
    for(int i=0;i<10;i++)
    {
        scanf("%d",&a[i]);
    }
    int temp=a[1],x=0;
    for(int i=0;i<10;i++)
    {
        if(fabs(temp)>fabs(a[i]))
        {
            temp=fabs(a[i]);
            x=i;
        }
    }
    int y=0;
    y=a[9];
    a[9]=a[x];
    a[x]=y;
    for(int i=0;i<10;i++)
    {
        printf("%d ",a[i]);
    }
    return 0;
}
2024-03-20 16:02:19
#include <stdio.h>
#include <string.h>
#include<stdlib.h>
int main(void)
{
    
    int i       ;
    int j       ;
    int a[10]   ;
    int temp[10];
    int temp_1;

    for (i = 0; i < 10; i++) 
    {
        scanf("%d",&a[i]);
    }

    for (i = 0; i < 10; i++) 
    {
        temp[i] = abs(a[i]);
    }

    for(i = 0; i < 10 ; i++)
    {
        for (j = i + 1; j < 10; j++) 
        {  
            if(temp[i] >= temp[j])
            {
                temp_1 = temp[j];
                temp[j] = temp[i];
                temp[i] = temp_1;
            }
        }
    } 

    for (i = 0; i <
2023-08-08 20:17:49
int main()
{
	int i = 0;
	int t = 0;
	int arr[10] = { 0 };
	for (i = 0; i < 10; i++)
	{
		scanf("%d", &arr[i]);
	}
	int min = abs(arr[0]);
	for (i = 0; i < 10; i++)
	{
		if (min > abs(arr[i]))
		{
			min = arr[i];
			t = i;
		}
	}
	arr[t] = arr[9];
	arr[9] = min;
	for (i = 0; i < 10; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}
2023-05-05 21:59:12
#include <stdio.h>
#include <stdlib.h>
#include <string.h> 
#include <math.h>
int main() {
  int p[11],pp[11],i,max=10000,j,t;
  for(i=0;i<10;i++)
  {
  	scanf("%d",&p[i]);
  	pp[i]=abs(p[i]);
  }
  for(i=0;i<10;i++)
  {
  	for(j=i;j<10;j++){
  	 if(pp[i]>pp[j]){
  	 	max=pp[i];
  		pp[i]=pp[j];
  		pp[j]=max;
  	 }
   }
  }
  for(i=0;i<10;i++){
  if(abs(p[i])==pp[0])
  {
  	t=p[i];
  	p[i]=p[9];
  	p[9]=t;
  }
  }
  for(i=0;i<10;i++)
  printf("%d ",p[i]);
	return 0;
}
2022-05-16 21:49:50
#include<stdio.h>
#include<math.h>
int main(){
	int num[10];
	
	for(int i=0;i<10;i++){		//输入所有数据到数组
		scanf("%d",&num[i]);
	}
	
	int t=num[0],flag=0;		//设置临时变量为num[0],下标标志
	for(int i=1;i<10-1;i++){	//10个数字只需要比较9次,所以需要减1
								//num[0]已经提取出了,循环可以从1开始,避免下标需要+1
		if(fabs(t)>fabs(num[i])){//比较两个数字的绝对值
			t = num[i];			//保存最小数到t
			flag = i;			//记录最小数下标
		}	
	}
	
	t=num[flag];num[flag]=num[10-1];num[10-1]=t;//交换最小数与最后一个数

	for(int i=0;i<10;i++){		//打印输出
		printf("%d ",num[i]);	
	}
	
	return 0;
}
2022-04-04 07:55:13
#include <stdio.h>
#include <stdlib.h>
int main ()
{
 int a[10],i,min,c,b[i],d;
 for (i=0;i<10;i++){
  scanf ("%d",&a[i]);
  b[i]=abs(a[i]);
 } 
 min=b[0];
 for (i=1;i<10;i++){
  if (min>b[i]){
   min=b[i];
   c=i;
  }
 }
 d=a[9];
 a[9]=a[c];
 a[c]=d;
 for (i=0;i<10;i++)
  printf ("%d ",a[i]);
 return 0;
}
有没有大佬看看为什么输出结果不对,感谢!!!
2022-02-11 11:55:01
#include<stdio.h>
#include<math.h>
int main()
{
  int a[10],b[10],i,min,temp;
  printf("请输入10个数:");
  for(i=0;i<10;i++)
  scanf("%d",&a[i]);
  for(i=0;i<10;i++)
  {
  	b[i]=abs(a[i]);
  }
  min=b[0];
  for(i=1;i<9;i++)
  {
  	if(b[i]<min)	min=b[i];
  }
  for(i=0;i<10;i++)
  {
  	if (abs(a[i])==min)
  	{
	temp=a[i];
  	a[i]=a[9];
  	a[9]=temp;
    }
  }
  printf("交换后:");
  for(i=0;i<10;i++)
  printf("%d ",a[i]);
 } 
大佬们,哪里错了,求解~
2022-02-10 11:02:01
  • «
  • 1
  • »