我正在使用代码块,它说我的代码没有错误,但是当我运行程序时它停止工作,因为我试图给出一个输入。请记住,我的编程课刚刚开始,我根本不知道。
以下是我的程序的代码:
#include <stdio.h>
int main()
{
int num;
int num1, num2, num3, num4;
printf("Please insert a number here:\n");
scanf("%d\n", num);
printf("When value of variable num is 2,\n");
num1 = num +1;
printf("\nThe value of num after using num + 1 is: %d", num1);
num2 = num +=1;
printf("\nThe value of num after using num +=1 is: %d", num2);
num3 = ++num;
printf("\nThe value of num after using ++num is: %d", num3);
num4 = num++;
printf("\nThe value of num after using num++ is: %d", num4);
return 0;
}
当我运行该程序时,它停止工作。
那么,我该如何解决这个错误呢? 提前谢谢。
答案 0 :(得分:2)
scanf 电话中有错误。
应该是
scanf("%d", &num);
注意&amp;在数字之前Scanf需要一个指向变量的指针,该变量必须用输入值填充。
关于您的代码和评论中的问题,您应该注意:
num1 = num +1;
num1 num 加一个
printf("\nThe value of num after using num + 1 is: %d", num1);
num2 = num +=1;
num 增加1,然后使用新值 num2 分配
printf("\nThe value of num after using num +=1 is: %d", num2);
num3 = ++num;
num 再次增加1,然后分配到 num3
printf("\nThe value of num after using ++num is: %d", num3);
num4 = num++;
num 的实际值分配给 num4 然后 num 增加1(++运算符在变量之后,因此增量发生在赋值之后
printf("\nThe value of num after using num++ is: %d", num4);
你在 printf 中写的内容并不确切。您没有打印 num 的值,但 num1 , num2 ,...
作为
num4 = num++;
num4 与 num 不同( num 减1)
答案 1 :(得分:0)
是的,我认为你仍然需要使用
scanf("%d", &num);
即使是int,因为它仍在读取数字数据。
我认为你的答案在ans2之后也有所改变,因为你使用了num2 = num +=1;
。 +=
就像使用num = num + 1;
一样。哪个会修改num的值。所以,ans3和ans4与你的预期不同。例如。如果输入num为2,则ans 3和ans4将等于4而不是3.如果要获得有关此信息的通知,可以在代码中的不同位置放置一些打印语句(如printf("\n Just printing value of num at this moment: %d",num);
)以观察更改。
答案 2 :(得分:0)
您接受输入的方式是错误的。您需要添加'&amp;'在除字符串之外的所有变量之前签名。因此,请将语句更改为scanf("%d",&num);
而且,从读取代码开始,如果num = 2的值,则需要启动num1。
printf("When value of variable num is 2,\n")
但是你的代码确实为num的任何值启动它。为避免这种情况,请使用if循环
printf("When value of variable num is 2,\n")
if(num==2)
{num1=num+1;}
else
{num1=0;
//or some other condition you wish
}
//and rest continues...