编写程序,输入一个正整数n(n<=10),在输入n 个整数,将最小值与第一个数交换,最大值与最后一个

交换,输出交换后的n个整数,用数组编写

存在如下问题:
1、s重复定义
2、i重复定义
3、最后一条printf语句少分号
4、警告;j定义了,但是没有使用
5、你的交换语句 a[p]=a[0]; 只是一个单纯的复制,没有交换。
6、警告:main 函数返回值类型要是void
修改后完整代码如下:(亲测,无误)
#include<stdio.h>
void main()
{
int n=0;
int a[10]={0};
int i,j;

scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}

int s=0;
int p=0;
s=a[0];

for(i=1;i<n;i++)
if(s>a[i]){
s=a[i];
p=i;
}
j = a[p];
a[p]=a[0]; //这里新加
a[0]=j; //这里新加

// s=0; //这句没用。
int q=0;
s=a[n-1];
for(i=0;i<n-1;i++)
if(s<a[i]){
s=a[i];
q=i;
}
j = a[q];//这里新加
a[q]=a[n-1];
a[n-1] = j;//这里新加
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
}
温馨提示:答案为网友推荐,仅供参考
相似回答