(c++)输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数; ①输入10个数;②进行处理;③输出10个数。 注意:不是排序!不是排序!

来源:互联网 发布:手机如何删除淘宝评论 编辑:程序博客网 时间:2024/04/28 17:37

#include<iostream>using namespace std;void enter(int *m){for(int i=0;i<10;i++)cin>>m[i];}void key(int *m){int max=m[0],min=m[0],n=0,k=0,z;for(int i=1;i<10;i++){if(max<m[i]){max=m[i];n=i;}}for(int i=1;i<10;i++){if(min>m[i]){min=m[i];k=i;}}if(n==0&&k==9){z=m[0];m[0]=m[9];m[9]=z;}else if(n==0&&k!=9){z=m[9];m[9]=m[n];m[n]=z;z=m[0];m[0]=m[k];m[k]=z;}else{z=m[0];m[0]=m[k];m[k]=z;z=m[9];m[9]=m[n];m[n]=z;    }}void print(int *m){for(int i=0;i<10;i++)cout<<m[i]<<' ';}int main(){int ans[10];enter(ans);key(ans);print(ans);return 0;}


这一题,我表示即将崩溃,我一直不知道自己错在哪儿,试了半天才发现是互换的顺序有问题,当最大值在第一位,或者最小值在最后一位时,要用不同的交换顺序,真是坑爹啊......

0 0