|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
int main()
{
int n,i,temp,max,min;
scanf("%d",&n);
int a[n];
for(i = 0;i < n;i++)
{
scanf("%d",a[i]);
}
min = a[0];
max = a[i];
for(i = 0;i < n;i++)
{
if(a[0] > a[i])
{
temp = min; //temp = a[0] a[0] = a[i] a[i] = temp
min = a[i];
a[i] = temp;
}
}
for(i = 0; i < n;i++)
{
if(a[i] > max)
{
temp = max; // temp = max max = a[i] a[i] = temp
max = a[i];
a[i] = temp;
}
}
for(i = 0;i < n;i++)
{
printf("%d ",a[i]);
}
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);
- int a[n]; // 若编译器不允许变长数组,将 a[n] 改为 a[5]
- for (i = 0;i < n;i++)
- scanf("%d", &a[i]);
- min = a[0];
- //找到最数组中最小的元素,并与第一个元素交换
- for (i = 1; i < n; i++)
- {
- if (min > a[i])
- {
- min = a[i];
- j = i;
- }
- }
- temp = a[0]; // 将最小值与第1个元素交换位置
- a[0] = a[j];
- a[j] = temp;
- max = a[n - 1]; // 在最小值的位置确定后,设最后一个元素为最大值
- //找到最数组中最大的元素,并与最后一个元素交换
- for (i = 0; i < n - 1; i++)
- {
- if (max < a[i])
- {
- max = a[i];
- k = i;
- }
- }
- temp = a[n - 1]; // 将最大值与最后1个元素交换位置
- a[n - 1] = a[k];
- a[k] = temp;
- for (i = 0;i < n;i++) // 输出数组
- printf("%d ", a[i]);
- printf("\n");
- }
复制代码
|
-
|