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;

}
展开
 我来答
wenqing8585
2018-05-10 · TA获得超过8252个赞
知道大有可为答主
回答量:8078
采纳率:70%
帮助的人:3882万
展开全部
因为你做交换的时候用的是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;
}
kaixingui2012
2015-05-27 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6486万
展开全部
#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;
}
来自:求助得到的回答
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式