qq_58594928 2021-09-11 17:17 采纳率: 100%
浏览 26
已结题

为什么在 b[i]=c 哪里就卡住了

int main()
{
int a,c;
int b[100];
int i;

while (/*rewind(stdin), */scanf("%d", &a) != EOF) {
    if (1 == a) {
        printf("1\n");
    }
    else {
        for (i = 0; a = 1;i++) {
            c = a % 2;
            b[i] = c;   //0x00D219C7 处(位于 4.进制转换.exe 中)引发的异常: 0xC0000005: 写入位置 0x00500000 时发生访问冲突。

            a /= 2;
        }
        b[i] = 1;
        printf("%d", b[i]);
        printf("\n");
    }
    
}

}

  • 写回答

2条回答 默认 最新

  • qzjhjxj 2021-09-11 19:06
    关注

    for (i = 0; a = 1;i++) a=1; 是赋值语句,这里本应该是判断语句,这样就死循环了。看代码的功能,这句应改为:for (i = 0; a != 0;i++) ,整体修改如下,供参考:

    #include<stdio.h>
    int main()
    {
        int a,c;
        int b[100];
        int i;
        while (/*rewind(stdin), */scanf("%d", &a) != EOF) {
            if (1 == a) {
                printf("1\n");
            }
            else {
                for (i = 0; a != 0;i++) {
                     c = a % 2;
                     b[i] = c;
                     a /= 2;
                }
                while(i--){  //输出二进制数
                     //b[i] = 1;
                     printf("%d", b[i]);
                }
                printf("\n");
            }
        }
    }
    
    
    本回答被专家选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月23日
  • 专家已采纳回答 9月15日
  • 创建了问题 9月11日

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 易优eyoucms关于二级栏目调用的问题
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题