c语言求最小值和最小值的下标,将最小值与第一个数交换,并输出数组元素

时间:2018.12.22 发布人:

c语言求最小值和最小值的下标,将最小值与第一个数交换,并输出数组元素

已解决问题

谷歌用户在2018.12.22提交了关于“雅绅特c语言求最小值和最小值的下标,将最小值与第一个数交换,并输出数组元素”的提问,欢迎大家涌跃发表自己的观点。目前共有2个回答,最后更新于2025-02-27T08:51:58。

#include<stdio.h>

intmain(){

inta[6];

inti,n,min,index=0,temp;

//scanf("%d",&n);

for(i=0;i<6;i++)

scanf("%d",&a[i]);

min=a[0];

for(i=1;i<6;i++)

if(min>a[i])

{

min=a[i];

index=i;

}

printf("min=%dindex=%d\n",min,index);

if(index!=0)

{

temp=a[0];

a[0]=a[index];

a[index]=temp;


}

for(i=0;i<6;i++)

printf("%d",a[i]);

return0;

}


z这是原代码,帮忙讲一下下面这几行代码的具体意思。


temp=a[0];

a[0]=a[index];

a[index]=temp;


希望大家能够帮助她。

详细问题描述及疑问:

#include<stdio.h>

intmain(){

inta[6];

inti,n,min,index=0,temp;

//scanf("%d",&n);

for(i=0;i<6;i++)

scanf("%d",&a[i]);

min=a[0];

for(i=1;i<6;i++)

if(min>a[i])

{

min=a[i];

index=i;

}

printf("min=%dindex=%d\n",min,index);

if(index!=0)

{

temp=a[0];

a[0]=a[index];

a[index]=temp;


}

for(i=0;i<6;i++)

printf("%d",a[i]);

return0;

}


z这是原代码,帮忙讲一下下面这几行代码的具体意思。


temp=a[0];

a[0]=a[index];

a[index]=temp;


期待您的答案,当代劳模,所有人都应该向你学习 !
希望以下的回答,能够帮助你。

第1个回答

用户名:娜美步皇尔肥督必土赶管小宅女  

不对,思路似乎有些乱。第一个for循环,写出的功能是:只要遇到比a[0]小的值例如a[i],a[0]就会被替换,而a[i]则会被a[0]覆盖。那么试问,如果数组有多个数值比a[0]小,那么那些值统统都会被赋值为a[0问答]的值么?例如:54321你的代码在最小值替换那里已经变成了:15555在最大值与最后一个数交换那里,用变量j记录最大值的位置,这个想法就蛮好的。不过,第二for循环那里问题是,找到一个为什巴么就要把值换掉呢?不是应该是查询完整个数组后,找被架药师到最大的是哪一个值,最后再进行替换。不是应该这样么?主要问题是:不要一找到就进行替换。先找,整个数组找完后,既for循环结束后备盐轮缩吗真补已认,再进行替换。

第2个回答

用户名:whoami1978  

这个三行代码就是交换

a[0]和a[index]的内容,利用中间变量temp

这个是最常见的**交换方法