实验07---7-05 交换最小值和最大值
本题要求编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列。
注意:题目保证最大和最小值都是唯一的。
输入格式:
输入在第一行中给出一个正整数N(≤10),第二行给出N个整数,数字间以空格分隔。
输出格式:
在一行中顺序输出交换后的序列,每个整数后跟一个空格。
输入样例:
5
8 2 5 1 4
输出样例:
1 2 5 4 8
自己写的
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int i,a,max=0,min=10000000,k,time_min,time_max;
scanf("%d",&k);
int arr[k];
for(i=0;i<k;i++)
{
scanf("%d",&a);
arr[i]=a;
if(min>a)
{
min=a;
time_min=i;
}
}
arr[time_min]=arr[0];
arr[0]=min;
for(i=0;i<k;i++)
{
if(max<arr[i])
{
max=arr[i];
time_max=i;
}
}
arr[time_max]=arr[k-1];
arr[k-1]=max;
for(i=0;i<k;i++)
printf("%d ",arr[i]);
return 0;
}
老师写的
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int n;
scanf("%d", &n);
int a[n];
for (int i = 0; i < n; i++)
{
scanf("%d", a[i]);
}
int mini = 0;
for (int i = 0; i < n; i++)
{
if (a[i] < a[mini])
{
mini = i;
}
}
int tmp;
tmp = a[0];
a[mini] = tmp;
int maxi = 0;
for (int i = 0; i < n; i++)
{
if (a[i]> a[maxi])
{
maxi = i;
}
}
tmp = a[n - 1];
a[n - 1] = a[maxi];
a[maxi] = tmp;
for (int i = 0; i < n; i++)
{
printf("%d", a[i]);
}
return 0;
}
原文地址:https://blog.csdn.net/ydm_ymz/article/details/143930924
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!