个个都想AC呀 2022-11-10 21:54 采纳率: 100%
浏览 51
已结题

关于数组无效内存引用

问题遇到的现象和发生背景

要求判断一个数的二进制是不是回文数,发生无效内存引用

用代码块功能插入代码,请勿粘贴截图
#include <stdio.h>
int main() 
{    int x, x0, i=0, j, flag=1;
    int a[10];
    scanf("%d", x);
    x0=x;
    while (x)
    {    a[i++]=x%2;
        x/=2;
    } 
    for (j=0, i--; i>j; i--, j++)
    {    if (a[i]!=a[j]) 
        {    flag=0;
            break;
        }
    }
    if (flag) printf("Yes!\n%d=%s\n", x0, a);
    else printf("No.\n");
    return 0;
}

运行结果及报错内容

无输出结果,显示无效内存引用

我想要达到的结果

为什么会出现无效内存引用的问题呢?感谢解答!

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-11-10 21:56
    关注

    scanf("%d", x);
    改成
    scanf("%d", &x);

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月18日
  • 已采纳回答 11月10日
  • 修改了问题 11月10日
  • 创建了问题 11月10日