|
发表于 2023-3-27 20:47:55
|
显示全部楼层
您的程序有一些问题,主要包括以下几点:
1.在fun函数中,h指针没有初始化,应该先将h指针指向p。
2.在for循环中,交换的两个数的下标应该是i和a-i-1,而不是i和a-i。
3.在输出结果时,应该每个数字之间加上空格,最后一个数字后不需要加空格。
4.在main函数中,应该将fun函数的参数改为a,而不是&a。
以下是修改后的程序:
- #include<stdio.h>
- void fun(int *p,int a)
- {
- int *h=p,i,temp;
- for(i=0;i<a/2;i++)
- {
- temp=*(p+i);
- *(p+i)=*(p+a-i-1); //修改2
- *(p+a-i-1)=temp; //修改2
- }
- for(i=0;i<a;i++)
- printf("%!d(MISSING) ",*(h+i)); //修改3
- }
- void main()
- {
- int a[99],n,i;
- scanf("%!d(MISSING)",&n);
- for(i=0;i<n;i++)
- scanf("%!d(MISSING)",&a[i]);
- fun(a,n); //修改4
- }
复制代码
另外需要注意的是,main函数中的返回值类型应该是int,而不是void。 |
|