看这个代码风格,估计是看了谭教授的巨著吧。
#include<stdio.h>
// 函数声明
void max(int x[], int n);
void min(int x[], int n);
void scan(int *p, int n);
void print(int *p, int n);
int main(void) {
int a[10];
scan(a, 10);
max(a, 10);
min(a, 10);
print(a, 10);
system("pause");
return 0;
}
void scan(int *p, int n) {
printf("请输入10个整数:\n");
for (int i = 0; i<n; i++) {
scanf("%d", &*(p + i));
}
}
void max(int x[], int n) {
int i;
int max = x[0];
for (i = 0; i < 10; i++) {
if (max < x[i])
max = x[i];
}
int y;
y = x[9];
x[9] = max;
// 这一步什么意思,i循环完必定等于10
// 而数组里面不存在第10号元素。
// 如果控制在数组内,i-1 也就是9号元素,这样赋值也没意义
// 如果这里不改,又会越界。
x[i-1] = x[9];
}
void min(int x[], int n) {
int i;
int min = x[0];
for (i = 0; i<10; i++) {
if (min > x[i])
min = x[i];
}
int y;
y = x[0];
x[0] = min;
x[i-1] = x[0];
}
void print(int *p, int n) {
int i = 0;
for (; i<10; i++) {
printf("%d ", *(p + i));
}
}
|