不希望的输出 - 打印出两个数字

Del*_*ino -1 c io stdin

我对C编程很新,所以我想我会尝试编写一个简单的程序来打印两个int数字.我提示用户输入这两个数字,然后只使用两个打印printf

但是,在运行程序时,我得到的结果非常奇怪.

例如...

Enter first int: 5
Enter second int: 3
First int: 2130567168
Second int: 2686756
Run Code Online (Sandbox Code Playgroud)

我的代码如下......

#include <stdio.h>

int main()
{
    int x, y;

    printf("Enter first number: ");
    scanf("%i", x);

    printf("Enter second number: ");
    scanf("%i", y);

    printf("%i\n%i%\n",x,y);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Riz*_*123 5

这是因为您忘记&scanf语句中的内容.所以改成它:

scanf("%i", &y);
scanf("%i", &x);
          //^ See here
Run Code Online (Sandbox Code Playgroud)

%你的printf语句中也有一个太多了.因为%格式说明符,所以如果你想打印符号,%你必须写2次:

printf("%i\n%i%\n",x,y);
            //^ Is a format specifier so if you want to print the symbol, write it 2 times
Run Code Online (Sandbox Code Playgroud)

边注:

如果%i在scanf语句中使用说明符并输入如下内容:035输出将变为29,因为它将被解释为八进制数.因此,如果您不希望您将更改说明符%d035成为35