c - C语言接收两个输入

标签 c

我想要一个程序,它可以从用户那里获取两个整数并将这些输入的总和放入一个变量中,然后检查总和是否大于 5? (我知道我可以用 if 来做,......但我想用 while 来做)。我自己做了,但它有一些问题,你介意说出问题是什么吗?我该如何调试它?这是我的代码:

#include <stdio.h>
int main()
{
    int ui1;
    int ui2;
    puts("Please enter two numbers:");
    scanf("%2i", &ui1, &ui2);
    int sum;
    sum = ui1+ui2;
    while(sum > 5) { 
         printf("Whats up !");
    }
    return 0;
}

最佳答案

这一行只扫描1个整数(%i格式为2,表示只取2位):

scanf("%2i", &ui1, &ui2);

但您似乎希望收到两个整数。
这将使第二个参数 ui2 未初始化。
(至少应该成功填充ui1)

改为尝试:

scanf("%i %i",  &ui1, &ui2);

关于c - C语言接收两个输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18831964/

相关文章:

c - x64 与 x86 中的内存处理 - C 语言

c - extern const 数组声明/初始化错误(无效的初始化器/冲突类型)

C:为什么将 int 转换为 float 输出 0.000?

c - 我希望我的代码按照字符串出现的顺序打印字符的频率

c - 如何将varargs添加到c中的结构

c - 在二叉树中插入字符串

c - 鼠标坐标

c - 有符号整数的未定义行为和 Apple 安全编码指南

c - 从汇编逆向工程优化的 C 代码

c - 为什么此 C 代码有意外行为