要求:用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<stdio.h>
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<10;i++)
{
scanf("%d",&a<i>);
}
}
void output(int a[10])
{
int i;
for(i=0;i<10;i++)
{
printf("%d",a<i>);
}
printf("\n");
}
void change(int a[])
{
int i=0,min=0,max=0,MIN=0,MAX=0;
int temp;
for(i=0;i<10;i++)
if(a<i><min)
{
min=a<i>;
MIN=i;}
for(i=0;i<10;i++)
if(a<i>>max)
{max=a<i>;
MAX=i;}
temp=a[0];a[0]=a[MIN];a[MIN]=temp;
temp=a[9];a[9]=a[MAX];a[MAX]=temp;
}
用法
#include后面有两种方式,<>;和""前者先在标准库中查找,查找不到在path中查找。后者为文件路径,若直接是文件名则在项目根目录下查找。
总结
既然是经常使用的东西,我们就应该明白它的原理,减少编程时的困惑,提高编程的效率。