在win7 64下一运行就停止工作

qiaosibo 2011-11-23 04:49:20
我自己写了个测试的C 但是我一运行就停止工作
请大家帮忙看看

代码附上
for(j=0;j<99;j++)
{
for(k=j+1;j<98;k++)
{
ram[j]=ram[j]^ram[k];
ram[k]=ram[k]^ram[j];
ram[j]=ram[j]^ram[k];
}
}
for(i=0;i<99;i++)
{
printf("%d\n",ram[i]);
}

就是这部分有问题
之前j和k都int过了
...全文
109 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiaosibo 2011-11-24
  • 打赏
  • 举报
回复
悲剧啊 写错了 应该改(j)成(k)
眼神不好啊
luciferisnotsatan 2011-11-23
  • 打赏
  • 举报
回复
这代码在什么系统上能不出问题??
拉卡尼休 2011-11-23
  • 打赏
  • 举报
回复

for(k=j+1;j<98;k++)
{
ram[j]=ram[j]^ram[k];
ram[k]=ram[k]^ram[j];
ram[j]=ram[j]^ram[k];
}


这是死循环,j的值不变,k一直在增加,ram[k]会越界
柯本 2011-11-23
  • 打赏
  • 举报
回复
for(k=j+1;j<98;k++) //死循环,导致内存溢出
应该是k<98吧
qiaosibo 2011-11-23
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int i,j,k;
int a=5;
int b=6;
int ram[100];
printf("Before Exchange:\n");
printf("%d\t%d\n",a,b);
printf("Next is Exchange!!\n");
//this is change a to b
//加法交换律
/*a=a+b;
b=a-b;
//this is change b to a;
//a has changed a=b;
a=a-b;
*/
// x=y+0*(y=x);
//xor ^异或运算
/*
a=a^b;
b=b^a;
a=a^b;
*/
//乘法和除法 b=a;a=b
a=a*b;
b=a/b;
a=a/b;
printf("Changed num\n");
printf("%d\t%d\n",a,b);
printf("******************\n");
for (i=0;i<99;i++)
{
ram[i]=rand()*100;
}
for(i=0;i<99;i++)
{
printf("%d\n",ram[i]);
}

printf("\n\t==============Here we go!!===========\t");
for(j=0;j<99;j++)
{
for(k=j+1;j<98;k++)
{
ram[j]=ram[j]^ram[k];
ram[k]=ram[k]^ram[j];
ram[j]=ram[j]^ram[k];
}
}
for(i=0;i<99;i++)
{
printf("%d\n",ram[i]);
}
return 0;
}

这是完整的
qiaosibo 2011-11-23
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int i,j,k;
int a=5;
int b=6;
int ram[100];
printf("Before Exchange:\n");
printf("%d\t%d\n",a,b);
printf("Next is Exchange!!\n");
//this is change a to b
//加法交换律
/*a=a+b;
b=a-b;
//this is change b to a;
//a has changed a=b;
a=a-b;
*/
// x=y+0*(y=x);
//xor ^异或运算
/*
a=a^b;
b=b^a;
a=a^b;
*/
//乘法和除法 b=a;a=b
a=a*b;
b=a/b;
a=a/b;
printf("Changed num\n");
printf("%d\t%d\n",a,b);
printf("******************\n");
for (i=0;i<99;i++)
{
ram[i]=rand()*100;
}
for(i=0;i<99;i++)
{
printf("%d\n",ram[i]);
}

printf("\n\t==============Here we go!!===========\t");
for(j=0;j<99;j++)
{
for(k=j+1;j<98;k++)
{
ram[j]=ram[j]^ram[k];
ram[k]=ram[k]^ram[j];
ram[j]=ram[j]^ram[k];
}
}
for(i=0;i<99;i++)
{
printf("%d\n",ram[i]);
}
return 0;
}

69,370

社区成员

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

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