求教:C语言输入10个整数,将其中最小的数与第一个数字对换,把最大的数字与最后一个数字对换。

要求:用3个函数实现1.输入10个数 2.进行处理.3输出10个数.
#include<stdio.h>
int main()
{void input();
printf("请输入10个数字:");
input();
return 0;
}
void input()
{void deal(int b[],int n);
int i,a[10];
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("这10个数字为:");
for(i=0;i<10;i++)
printf("%2d",a[i]);
printf("\n");
deal(a,10);
}
void deal(int b[],int n)
{void output(int c[],int m);
int t,*p,*end,*min,*max;
p=b;
end=p+n;
min=max=b;
for(p=b;p<end;p++)
{ if(*p>*max)
max=p;
}
for(p=&b[0];p<end;p++)
{ if(*p<*min)
min=p;}
if(*max!=b[0]||*min!=b[9])
{t=*max;
*max=b[9];
b[9]=t;
t=*min;
*min=b[0];
b[0]=t;}
else
{t=*max;
*max=*min;
*min=t;}
output(b,10);
}
void output(int c[],int m)
{int j;
printf("输入处理后的数字为:");
for(j=0;j<m;j++)
printf("%2d",c[j]);
printf("\n");
}

这个是我自己写的程序,求教有没有好一点的办法实现?

#include&lt;stdio.h&gt;

int main()

{void change(int a[]);

void input(int a[10]);

void output(int a[10]);

int a[10];

input(a);

change(a);

output(a);

return 0;

}

void input(int a[10])

{

int i;

for(i=0;i&lt;10;i++)

{

scanf("%d",&a&lt;i&gt;);

}

}

void output(int a[10])

{

int i;

for(i=0;i&lt;10;i++)

{

printf("%d",a&lt;i&gt;);

}

printf("\n");

}

void change(int a[])

{

int i=0,min=0,max=0,MIN=0,MAX=0;

int temp;

for(i=0;i&lt;10;i++)

if(a&lt;i&gt;&lt;min)

{

min=a&lt;i&gt;;

MIN=i;}

for(i=0;i&lt;10;i++)

if(a&lt;i&gt;&gt;max)

{max=a&lt;i&gt;;

MAX=i;}

temp=a[0];a[0]=a[MIN];a[MIN]=temp;

temp=a[9];a[9]=a[MAX];a[MAX]=temp;

}

扩展资料:

用法

#include后面有两种方式,&lt;&gt;;和""前者先在标准库中查找,查找不到在path中查找。后者为文件路径,若直接是文件名则在项目根目录下查找。

总结

既然是经常使用的东西,我们就应该明白它的原理,减少编程时的困惑,提高编程的效率。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-05-23
#include<stdio.h>
int main(void)
{
int n,m,i,j,a[10];
printf("请输入一个正整数n(1<n<11):");
scanf("%d",&n);
if(1<n&&n<11){
printf("请输入%d个整数:\n",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);    //输入

for(m=1,i=0;m<n;m++){
if(a[m]<a[i]) i=m; //找出最小值
}

j=a[i];
a[i]=a[0];
a[0]=j; //交换最小值与第一个数


for(m=1,i=0;m<n;m++)
if(a[m]>a[i]){  i=m; //找出最大值
  }
  
j=a[i];
a[i]=a[n-1];
a[n-1]=j; //交换最大值与第一个数

for(m=0;m<n;m++)
printf("  %d",a[m]);

printf("\n");
}
else
printf("输入错误!\n");
return 0;
}

本回答被网友采纳
第2个回答  2013-10-10
虽然不会c语言,但会一点c++,如果你看得懂的话,希望在“比较函数”方面有帮助。
#include<iostream>
#include<cmath>

using namespace std;
int main()
{
int b=0,c=10,i,k;
int a[10]={0};//用的4.9.9.2版本,数组从下标为1开始
for(i=1;i<=10;i++)
{
cin>>a[i];
b=max(b,a[i]);
c=min(c,a[i]);
}
a[1]=b;
a[10]=c;
for(k=1;k<=10;k++)
{
cout<<a[k];
}

system("pause");
return 0;
}