0

このプログラムは coderunner を使って書きました。

#include <stdio.h>

int main()
{
    int num1, num2;

    scanf("%d%d", &num1, &num2);

    if (num1 > num2) 
        printf("The min is:%d\n ", num2);
    else
        printf("The min is:%d\n ", num1);
return 0;   
}

問題は、プログラムが実行されないことです。これを表示し続け、しばらくすると停止します。

ランニング

scanf を削除すると問題が解決しました。scanf を使用して他のプログラムを試してみましたが、問題ありませんでした。何か案は?

4

1 に答える 1

2

eg orを 2 つの整数としてどのようscanf()に解釈しますか? 入力したすべての数字が最初の によって「食べられ」 、2 番目の数字をさらに待つ可能性があります。1231232%dscanf()

それらの間に何らかの区切り、または数値以外の文字を使用する必要があります。

scanf("%d/%d", &num1, &num2);

これはscanf()、2 つの数字の間にスラッシュがあることを示しています。もちろん、空白を使用することもできます(コメントで指摘されているように、フォーマット文字列には空白はありません)。

また、数値に頼る前に戻り値を確認する必要があります。

if(scanf("%d %d", &num1, &num2) == 2)
{
}
于 2016-10-10T08:14:52.110 に答える