C语言任意输入十个数,交换最大值和最小值然后输出。
发布网友
发布时间:2024-10-05 05:47
我来回答
共5个回答
热心网友
时间:2024-12-03 09:28
#include<stdio.h>
void main()
{
int a[10],max,min,maxpos=0,minpos=0,i;//此处被改过
int temp;
printf("Input ten numbers:\n");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}//改过,添加了}
max=min=a[0];//添加一句,初始化max、min
for(i=0;i<10;i++)//改
{//改
if(a[i]>max)
{
max=a[i];
maxpos=i;
}
if(a[i]<min)
{
min=a[i];
minpos=i;
}
}
temp=a[maxpos];
a[maxpos]=a[minpos];
a[minpos]=temp;
for(i=0;i<10;i++)
printf("%4d",a[i]);
}
//您之所以不对是max=0,min=0这不对,万一max、min读取不到数组中的元素呢,所以我做了以上修改
热心网友
时间:2024-12-03 09:29
我亲自编译过,没有错误,运行结果也正确。
#include <stdio.h>
void main()
{
int i,max=0,min=0;
int a[10];
printf("please enter 10 num\n");
for (i=0;i<=9;i++)
{
scanf("%d",&a[i]);
}
max=a[0];
min=a[0];
for(i=1;i<9;i++)
{
if(max<=a[i])
max=a[i];
else if(min>=a[i])
min=a[i];
}
for(i=0;i<=9;i++)
{
if(a[i]==max)
printf("%d\n",min);
else if (a[i]==min)
printf("%d\n",max);
else
printf("%d\n",a[i]);
}
}
热心网友
时间:2024-12-03 09:29
用冒泡比较简单
for(i=0;i<n-1;i++)
for(int j = n - 1;j > i; j--)
if(a[j] > a[i])
{
temp = a[i];
a[j] = a[j-1];
a[j-1] = temp;
}
热心网友
时间:2024-12-03 09:30
最小值未必小于0,比如说10个数字都是正数呢?
热心网友
时间:2024-12-03 09:30
#include<stdio.h>
void main()
{
int a[10],max,min,maxpos=0,minpos=0,i;
int temp;
printf("Input ten numbers:\n");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);}
min=a[0];
max=a[0];
for(i=0;i<10;i++)
{ if(a[i]>max)
{
max=a[i];
maxpos=i;
}
if(a[i]<min)
{
min=a[i];
minpos=i;
}
}
temp=a[maxpos];
a[maxpos]=a[minpos];
a[minpos]=temp;
for(i=0;i<10;i++)
printf("%4d",a[i]);
}