#include <stdio.h> void fun(int a[], int n) {int i,t; /**********found**********/ for (i=0; i<___1___; i++) { t=a[i]; /**********found**********/ a[i] = a[n-1-___2___]; /**********found**********/ ___3___ = t; } } main() {int b[9]={1,2,3,4,5,6,7,8,9}, i; printf("\nThe original data :\n"); for (i=0; i<9; i++) printf("%4d ", b[i]); printf("\n"); fun(b, 9); printf("\nThe data after invert :\n"); for (i=0; i<9; i++) printf("%4d ", b[i]); printf("\n"); }程序填空,用C语言
时间: 2023-07-01 13:23:53 浏览: 336
华为笔试题
填空处的答案如下:
```
#include <stdio.h>
void fun(int a[], int n)
{
int i,t;
for (i=0; i<n/2; i++) // 填空1:循环次数为 n/2
{
t=a[i];
a[i] = a[n-1-i]; // 填空2:对称位置上的元素交换
a[n-1-i] = t; // 填空3:将 t 赋值给对称位置上的元素
}
}
int main()
{
int b[9]={1,2,3,4,5,6,7,8,9}, i;
printf("\nThe original data :\n");
for (i=0; i<9; i++)
printf("%4d ", b[i]);
printf("\n");
fun(b, 9);
printf("\nThe data after invert :\n");
for (i=0; i<9; i++)
printf("%4d ", b[i]);
printf("\n");
return 0;
}
```
程序的主要思路是将数组中的元素前后对称交换,最终实现数组的翻转。需要注意的是,在交换过程中,如果循环次数为 `n`,那么只需要交换前一半的元素即可,因此循环次数应该为 `n/2`。另外,对于交换过程中左右两个位置的元素,可以使用一个临时变量 `t` 来存储其中一个元素的值,避免在交换过程中数据丢失。
阅读全文