10个元素的数组中最大的与第一个元素交换,最小的与最后一个元素交换,比如输入3627198054,
为什么我输出的是9627198050,麻烦您帮我看看我的代码有什么问题啊#include<stdio.h>intmain(void){inta[10],i;intmax=...
为什么我输出的是9627198050,麻烦您帮我看看我的代码有什么问题啊
#include <stdio.h>
int main(void)
{
int a[10],i;
int max=a[0],min=a[0],temp1,temp2;
printf("数组:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=1; i<10;i++)
if(min > a[i])
min = a[i];
temp2=a[9];
a[9]=min;
min=temp2;
for(i=1; i<10;i++)
if(max < a[i])
max = a[i];
temp1=a[0];
a[0]=max;
max = temp1;
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
return 0;
} 展开
#include <stdio.h>
int main(void)
{
int a[10],i;
int max=a[0],min=a[0],temp1,temp2;
printf("数组:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=1; i<10;i++)
if(min > a[i])
min = a[i];
temp2=a[9];
a[9]=min;
min=temp2;
for(i=1; i<10;i++)
if(max < a[i])
max = a[i];
temp1=a[0];
a[0]=max;
max = temp1;
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
return 0;
} 展开
2个回答
展开全部
因为你做交换的时候用的是min和max,而不是a[i],所以没有达到目的。可以这样改:
int main()
{
int a[10], i;
int max = 0, min = 0, temp1, temp2;
printf("数组:");
for (i = 0; i<10; i++)
scanf("%d", &a[i]);
for (i = 1; i<10; i++)
if (a[min] > a[i])
min = i;
for (i = 1; i<10; i++)
if (a[max] < a[i])
max = i;
temp2 = a[9];
a[9] = a[min];
a[min] = temp2;
temp1 = a[0];
a[0] = a[max];
a[max] = temp1;
for (i = 0; i<10; i++)
printf("%d", a[i]);
printf("\n");
return 0;
}
int main()
{
int a[10], i;
int max = 0, min = 0, temp1, temp2;
printf("数组:");
for (i = 0; i<10; i++)
scanf("%d", &a[i]);
for (i = 1; i<10; i++)
if (a[min] > a[i])
min = i;
for (i = 1; i<10; i++)
if (a[max] < a[i])
max = i;
temp2 = a[9];
a[9] = a[min];
a[min] = temp2;
temp1 = a[0];
a[0] = a[max];
a[max] = temp1;
for (i = 0; i<10; i++)
printf("%d", a[i]);
printf("\n");
return 0;
}
展开全部
#include <stdio.h>
int main(void)
{
int a[10],i;
int max=a[0],min=a[0],temp1,temp2; //这里赋值a[0]没有意义,因为a[0]还没有值
printf("数组:");
for(i=0;i<10;i++) //3 6 2 7 1 9 8 0 5 4 数值间要以空格分开,不然,会被认为是一个数
scanf("%d",&a[i]);
min=0;//以min为下标,这样交换才能交换相应的位置,不然,交换的只是min数值!!下同
for(i=1; i<10;i++)
if(a[min] > a[i])
min = i;
temp2=a[9];
a[9]=a[min];
a[min]=temp2;
max=0;//
for(i=1; i<10;i++)
if(a[max] < a[i])
a[max] = a[i];
temp1=a[0];
a[0]=a[max];
a[max] = temp1;
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
return 0;
}
来自:求助得到的回答
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询