为什么这段代码会产生运行时错误?

时间:2018-02-16 12:30:57

标签: c

#include <stdio.h>
#include<stdlib.h>
int main()
{
    int in =0;
    for(int i =0 ; i<5 ; i++)
    {
        for(int j=0 ; j<5 ; j++)
        {
            scanf("%d",in);
            if(in)
            {
                printf("%d",(abs(3-j)+abs(3-i)));
                break;
            }
        }

    }
    return 0;
}

实际上我尝试使用此代码来解决问题,但它仍然会产生运行时错误。
 在此输入样本上

0 0 0 0 0
0 0 0 0 1
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0

它给运行时错误带来了什么以及如何解决这个问题?谢谢。

2 个答案:

答案 0 :(得分:2)

此处的错误是:scanf("%d",in);

您可以使用scanf()来阅读stdin的格式化输入。 您可以查看scanf() here

的语法

解决方案是使用in

添加&变量的位置
scanf("%d",&in);

答案 1 :(得分:1)

int in =0;    
scanf("%d",in);

scanf()的语法错误。参数应该是一个指针。 它应该是

int in =0;    
scanf("%d",&in);