C语言作业,在含有10个元素的数组中,找出最小值,并与第一个数交换。

如题所述

输入格式:

输入在第一行中给出一个正整数N(≤10),第二行给出N个整数,数字间以空格分隔。

输出格式:

在一行中顺序输出交换后的序列,每个整数后跟一个空格。

输入样例:

5

8 2 5 1 4

输出样例:

1 2 5 4 8

#include<stdio.h>

main()

{

int n,i,a[10],c,d,min,max,j;

scanf("%d",&n);

for(i=0;i<n;i++)

{

scanf("%d",&a<i>);

}

min=max=a[0];

for(i=0;i<n;i++)

{

if(a<i><=min)

{

min=a<i>;

j=i;

}

}

c=a[0];

a[0]=min;

a[j]=c;

for(i=0;i<n;i++)

{

if(a<i>>=max)

{

max=a<i>;

j=i;

}

}

d=max;

a[j]=a[n-1];

a[n-1]=d;

for(i=0;i<n;i++)

printf("%d",a<i>);

}

扩展资料:

方法二、

#include<stdio.h>

int main(){

int a[10],i,t,imin,imax,n=10;

printf("输入10整数(空格隔开):");

for(i=0;i<n;++i)

scanf("%d",&a<i>);

printf("处理前:\n");

for(i=0;i<n;++i)

printf("%d",a<i>);

printf("\n");

imin=imax=0;

for(i=1;i<n;++i){

if(a<i>>a[imax])imax=i;

if(a<i><a[imin])imin=i;

}

if(imin!=0){

t=a[0];

a[0]=a[imin];

a[imin]=t;

}

if(imax!=n-1){

t=a[n-1];

a[n-1]=a[imax];

a[imax]=t;

}

printf("处理后:\n");

for(i=0;i<n;++i)

printf("%d",a<i>);

printf("\n");

return 0;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-05-14
#include<stdio.h>
int main()
{int i,min=0,t,a[10];
for(i=0;i<10;i++)
{scanf("%d",&a[i]);
if(a[i]<a[min])min=i;
}
t=a[0];a[0]=a[min];a[min]=t;
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}追问

不合适啊

追答

我的DEV C++下运行正常啊:

本回答被提问者和网友采纳
相似回答