交换最小值和最大值
#include<stdio.h>int main()
{
int n,i,temp,max,min;
scanf("%d",&n);
int a;
for(i = 0;i < n;i++)
{
scanf("%d",a);
}
min = a;
max = a;
for(i = 0;i < n;i++)
{
if(a > a)
{
temp = min; //temp = a a = aa = temp
min = a;
a = temp;
}
}
for(i = 0; i < n;i++)
{
if(a > max)
{
temp = max; // temp = max max = a a = temp
max = a;
a = temp;
}
}
for(i = 0;i < n;i++)
{
printf("%d ",a);
}
return 0;
}
这个是我写的,帮忙看看有什么问题,PTA一直说段错误 本帖最后由 风过无痕1989 于 2020-12-11 23:28 编辑
我晕,你这个题目又是最小值放第1个,我的程序又得改一次
#include<stdio.h>
void main()
{
int i, j = 0, k = 0, n, max, min, temp;
scanf("%d", &n);
inta; // 若编译器不允许变长数组,将 a 改为 a
for (i = 0;i < n;i++)
scanf("%d", &a);
min = a;
//找到最数组中最小的元素,并与第一个元素交换
for (i = 1; i < n; i++)
{
if (min > a)
{
min = a;
j = i;
}
}
temp = a; // 将最小值与第1个元素交换位置
a = a;
a = temp;
max = a; // 在最小值的位置确定后,设最后一个元素为最大值
//找到最数组中最大的元素,并与最后一个元素交换
for (i = 0; i < n - 1; i++)
{
if (max < a)
{
max = a;
k = i;
}
}
temp = a; // 将最大值与最后1个元素交换位置
a = a;
a = temp;
for (i = 0;i < n;i++) // 输出数组
printf("%d ", a);
printf("\n");
} 风过无痕1989 发表于 2020-12-11 23:05
我晕,你这个题目又是最小值放第1个,我的程序又得改一次
有个测试点错了 本帖最后由 风过无痕1989 于 2020-12-12 14:27 编辑
FC_YSN 发表于 2020-12-12 10:24
有个测试点错了
哪一个?
页:
[1]