c语言,求指导,在线等

1 输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换,写3个函数:
(1)输入10个数 (2) 进行处理 (3) 输出10个数

#include <stdio.h>

input(int b[10])
{
int i;
for(i=0;i<10;i++)
scanf("%d",&b[i]);
}
output(int c[10])
{
int *max,*min,i,j,k,t1,t2;
max=min=c;
for(i=1;i<10;i++)
{ if(c[i]>*max)
max=c+i;
t1=i;

if(c[i]<*min)
min=c+i;
t2=i;

j=c[9];
c[9]=*max;
c[t1]=j;

k=c[0];
c[0]=*min;
c[t2]=k;

}

for(i=0;i<10;i++)
printf("%3d",c[i]);
}

int main()
{
int a[10];
input(a);
output(a);

}

题目要求是3个函数,你只做了两个函数

#include <stdio.h>

void input(int b[])   //函数 1:输入10个数
{
 int i;
 for(i=0;i<10;i++)
  scanf("%d",&b[i]);
}

void run(int b[])    //函数 2:进行处理
{
 int max,min,ma,mi,i,t;
 max=min=b[0];
 ma=mi=0;
 for(i=0;i<10;i++)
 {
  if(max<b[i])    //把最大的数的下标保存到ma中
  {
   max=b[i];
   ma=i;
  }
  if(min>b[i])    //把最小的数的下标保存到mi中
  {
   min=b[i];
   mi=i;
  }
 }
 t=b[0];   //将其中最小的数与第一个数对换
 b[0]=b[mi];
 b[mi]=b[0];

 t=b[9];   //把最大的数与最后一个数对换
 b[9]=b[ma];
 b[ma]=t;
}

void output(int b[])   //函数 3:输出10个数
{
 int i;
 for(i=0;i<10;i++)
  printf("%3d",b[i]);
 printf("\n");
}

int main()
{
 int a[10];
 printf("请输入10个数:\n");
 input(a);
 printf("处理中……\n");
 run(a);
 printf("结果为:\n");
 output(a);
}

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-12
#include <stdio.h>
void input(int b[10])//这个void 最好就加上吧
{
int i;
for(i=0;i<10;i++)
scanf("%d",&b[i]);
}
void output(int c[10])
{
int *max,*min,i,j,k,t1,t2;
max=min=c;
for(i=1;i<10;i++)//分开找最大值与最小值  不然会出错  就是当最小值为最后一个数时会出错
{
if(c[i]>*max)//这个if语句大大括号你丢了  这就是出错的原因
{
max=c+i;
t1=i;
}
}

j=c[9];//第一个for循环用于找最大值   找出后就交换
c[9]=*max;
c[t1]=j;
for(i=1;i<10;i++)//这个for循环用于找最小值
{
           if(c[i]<*min)//同样这里的if的大括号你丢了
  {
min=c+i;
t2=i;
  }
}
k=c[0];//找出最小值后就交换
c[0]=*min;
c[t2]=k;
for(i=0;i<10;i++)
printf("%3d",c[i]);
}

int main()
{
int a[10];
input(a);
output(a);
}

还有不懂的话可以追问

相似回答