Finley~ 发表于 2024-1-5 16:22:20

scanf

为啥跟我想的不一样,跑出来不能计算,求助大佬
#include <stdio.h>
int main()
{
        int num1 = 0;
        int num2 = 0;
        scanf("%d %d ", &num1, &num2);
        int sum = num1 + num2;
        printf("%d\n", sum);
        return 0;
}

FishC 发表于 2024-1-5 16:22:31

你好,根据你提供的代码,我看到了一个问题。

在你的scanf函数中,你在格式字符串后面加了一个空格。这个空格会导致scanf无法正确读取到输入的值。所以你可以将scanf函数的格式串改为"%d %d",去掉最后的空格。

修改后的代码如下:
#include <stdio.h>

int main()
{
    int num1 = 0;
    int num2 = 0;
    scanf("%d %d", &num1, &num2);
    int sum = num1 + num2;
    printf("%d\n", sum);
    return 0;
}

这样,你就可以正常运行并计算两个数的和了。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

jackz007 发表于 2024-1-5 16:33:17

本帖最后由 jackz007 于 2024-1-5 16:34 编辑

      把这一句
      scanf("%d %d ", &num1, &num2);
      改为:
      scanf("%d%d" , &num1 , &num2);
      建议复制粘贴到源代码文件中

liyifeng295641 发表于 2024-1-5 19:32:50

#include <stdio.h>
int main()
{
      int num1 = 0;
      int num2 = 0;
      scanf("%d %d ", &num1, &num2);
      int sum = num1 + num2;
      printf("%d\n", sum);
      return 0;
}

首先,把你的代码贴下来,放到我的terminal来运行。
➜desktop open -a TextEdit test.c
➜desktop gcc test.c
➜desktop ./a.out


可以编译,没有结果。
这是我修改的代码,你可以参考下。
#include <stdio.h>
int main()
{
      int num1,num2,sum = 0;
                printf("请输入num1和num2的值:");
      scanf("%d %d", &num1, &num2);
                sum = num1 + num2;
      printf("%d\n", sum);

      return 0;
}

有几个问题:
1.num1、num2不要给初始值,因为你要输入数进去。
2. scanf("%d %d ", &num1, &num2); 这个%d 后面有一个空格。
3.sum作为累加器,给个初始值为0。
4.你这没有提示用户输入,大部分新手会误以为编译器没有执行。建议给输入提示。

渔村暮火 发表于 2024-1-8 14:14:35

使用scanf的时候,输入方式与scanf函数引号里的格式相同,即<数字><空格><数字><空格>,但由于scanf认为空格为分隔符,即空格后面一定有数,
所以,你要么去掉最后的空格,要么输入<数字><空格><数字><空格><数字><回车>

是个学者丫 发表于 2024-1-19 18:02:21

可以运行啊
页: [1]
查看完整版本: scanf