永发信息网

求助关于VC的问题~

答案:3  悬赏:70  手机版
解决时间 2021-06-04 17:54
  • 提问者网友:最爱你的唇
  • 2021-06-04 11:43

试编写一个程序,其功能是:从键盘输入一个整数y,然后再输入y个整数,存入数组中,然后在数组中找出最小数,与第一个数互换位置,在数组中找出最大数,与最后一个数互换位置,然后将数组输出。例如:输入6 23 89 78 -2 -9 -67,输出

-67 23 78 -2 -9 89

最佳答案
  • 五星知识达人网友:duile
  • 2021-06-04 12:59

帮你写了个. 有问题还请追问.. 望采纳!!


#include <stdio.h>
#include <malloc.h> //malloc



int main()
{
int y,i,max=-123456,min=123456,max_i,min_i;



scanf("%d",&y);
int *a=(int *)malloc(y*sizeof(int)); //动态申请数组. 长度为y.


for(i=0;i<y;i++)
{ //对输入的每一个数.进行判断. 是否大于max,是就保存到max中.并保存下标.最小数也一样
scanf("%d",&a[i]);
if(a[i]>max) max=a[i],max_i=i;
if(a[i]<min) min=a[i],min_i=i;
}


//将最小数和a[0]交换. 最大数和a[y-1]交换.


i=a[0],a[0]=min,a[min_i]=i;
i=a[y-1],a[y-1]=max,a[max_i]=i;


//输出


for(i=0;i<y;i++)
{
printf("%d ",a[i]);
}
printf("\n");


free(a); //释放之前申请的a的空间.


return 0;
}


附图:


全部回答
  • 1楼网友:怙棘
  • 2021-06-04 14:08

我也发个,是c++版的,已测试有效

#include<iostream> using namespace std;

int main() { int num,n[100],*min,*max; int i; cout<<"数据的个数[0~100]:"; cin>>num; if(num==0) { cout<<"没有要输入的数据"<<endl; return 0; } else { for(i=0;i<num;i++) { cin>>n[i]; } min=max=n; for(i=1;i<num;i++) { if(*min>n[i]) min=n+i; } i=*min; n[min-n]=n[0]; n[0]=i; for(i=1;i<num;i++) { if(*max<n[i]) max=n+i; } i=*max; n[max-n]=n[num-1]; n[num-1]=i; for(i=0;i<num;i++) cout<<n[i]<<" "; cout<<endl; } return 0; }

  • 2楼网友:煞尾
  • 2021-06-04 13:26
用什么语言呢 ?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯