作为一名西南交大计算机的大一新生,每次网站查看答案都要花10个金币,于是我决定将网站的答案写下来(不是标答,本人自己写的)造福大家。有问题欢迎指正TT
从键盘输入n个整数,用函数编程实现最大值和最小值的交换,并打印结果。 **输入格式要求:"%d" 提示信息:"Input n(n<=10):" "Input %d numbers:" **输出结果格式要求:"%5d" 提示信息:"Exchange results:"
代码如下:
#include <stdio.h>
void myexchange(int *p, int n)//传入指针
{
int max = *p, min = *p;
int t1 = 0, t2 = 0;
int i;
for (i = 1; i < n; i++) //找到最大和最小
{
if (max < * (p + i))
{
max = *(p + i);
t1 = i;
}
if (min > *(p + i))
{
min = *(p + i);
t2 = i;
}
else
{
continue;
}
}
int t = *(p + t1);
*(p + t1) = *(p + t2);
*(p + t2) = t;
}
int main()
{
int n;//表示输入整数的个数
int A[10];//用于储存输入的整数
int i;
printf("Input n(n<=10):");
scanf("%d", &n);
printf("Input %d numbers:", n);
for (i = 0; i < n; i++)
{
scanf("%d", &A[i]);
}
myexchange(A, n);
printf("Exchange results:");
for (i = 0; i < n; i++)
{
printf("%5d", A[i]);
}
return 0;
}
ps:涉及修改数组的值,故传入数组的地址。