#include <stdio.h> #define N 5 void main() { int a[N] = { 9,6,5,4,1 }, i, temp; printf("\n original array:\n"); for (i = 0;i < N;i++) printf("%4d", a[i]); for (i = 0;i < N / 2;i++) { temp = a[i]; a[i] = a[N - i - 1]; a[N - i - 1] = temp; } printf("\n sorted array:\n"); for (i = 0;i < N;i++) printf("%4d", a[i]); }利用模块化编程思想改写程序,main函数如下#include <stdio.h> #define N 5 void sort(int* p); void main() { int a(N) = (9, 6, 5, 4, 1), i; sort(a); for (i = 0;i < N;i++) printf("%4d", a[i] }
时间: 2024-03-03 09:52:37 浏览: 62
抱歉,您提供的程序存在语法错误,并且修改后也存在错误。以下是修改后的程序:
原程序:
#include <stdio.h>
#define N 5
void main() {
int a[N] = { 9,6,5,4,1 }, i, temp;
printf("\n original array:\n");
for (i = 0;i < N;i++)
printf("%4d", a[i]);
for (i = 0;i < N / 2;i++) {
temp = a[i];
a[i] = a[N - i - 1];
a[N - i - 1] = temp;
}
printf("\n sorted array:\n");
for (i = 0;i < N;i++)
printf("%4d", a[i]);
}
修改后的程序:
#include <stdio.h>
#define N 5
void sort(int* p);
int main() {
int a[N] = { 9,6,5,4,1 }, i;
sort(a);
printf("\n sorted array:\n");
for (i = 0;i < N;i++)
printf("%4d", a[i]);
return 0;
}
void sort(int* p) {
int i, temp;
printf("\n original array:\n");
for (i = 0;i < N;i++)
printf("%4d", p[i]);
for (i = 0;i < N / 2;i++) {
temp = p[i];
p[i] = p[N - i - 1];
p[N - i - 1] = temp;
}
}
改写后的程序将原来的代码分成了两个函数,sort函数实现了原来的排序功能,main函数负责调用sort函数并输出结果。注意,sort函数的参数是一个指向整型数组的指针,因此在sort函数中可以直接使用指针操作数组元素。
阅读全文