以前觉得0个error就万幸,现在就算0warning也只能是弟弟

阿斯蒂芬K 2019-12-27 09:28:38
问题是这样的:我想输入一个包含十位数的数组,然后运行一个reverse(返回)子函数,让他里面的值改变,注意,不是简单地反着输出而已,而是把他的值都改变。 异常:一直debug不了,点了之后没反应,只执行了前面几行语句。 编译器:vc++6.0 源码: #include<stdio.h> void reverse(int x[],int n);//形参是数组名// int main() { int i,a[10]={2,3,4,5,6,7,8,9,45,33}; printf("原数组为:\n"); for(i=0;i<10;i++) printf("%d\t",a[i]); reverse(a,10); printf("改变后数组为:\n"); for(i=0;i<10;i++) printf("%d\t",a[i]); return 0; } void reverse(int x[],int n) { int temp,i,j,m; m=(n-1)/2; for(i=0;i<=m;i++) { temp=x[i]; x[i]=x[j]; x[j]=temp; } }
...全文
63 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
源代码大师 2021-05-06
  • 打赏
  • 举报
回复
希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10768339.html
自信男孩 2019-12-27
  • 打赏
  • 举报
回复
#include<stdio.h>

void reverse(int x[],int n);//形参是数组名//

int main()
{
int i,a[10]={2,3,4,5,6,7,8,9,45,33};

printf("原数组为:\n");
for(i=0;i<10;i++)
printf("%d\t",a[i]);
reverse(a,10);
printf("改变后数组为:\n");
for(i=0;i<10;i++)
printf("%d\t",a[i]);


return 0;
}
void reverse(int x[],int n)
{
#if 0
int temp,i,j,m;
m=(n-1)/2;
for(i = 0, j = n-1; i <= m; i++, j--)
{

temp=x[i];
x[i]=x[j];
x[j]=temp;

}
#endif
int i, j;
int tmp;

for (i = 0, j = n-1; i < j; i++, j--) {
tmp=x[i];
x[i]=x[j];
x[j]=tmp;
}
}


供参考~
阿斯蒂芬K 2019-12-27
  • 打赏
  • 举报
回复
总结:如果0个error又0个warning,那么很有可能是逻辑错误而导致无法运行。欢迎大佬指点请教
阿斯蒂芬K 2019-12-27
  • 打赏
  • 举报
回复
解决了,我漏了一条语句哎呀 j=n-1-i

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧