2

2 つの数値を乗算する次のコードを書きましたが、結果が正しくないことがわかります。データ型が値を正しく保持していないと思います。しかし、その印刷の答えは正しくありません。

#include<stdio.h>
main()
{
    long int val1,val2;
    val1=val2=1235;
    char c = 'y';
    switch(c)
    {
        case 'y' : printf("%20d",val1*val2);
            break;
        default: printf("invalid");
            break;
    }
    return 0;
}

OUTPUT :
17897 //これは正しい答えではありません
//実際には 1525225 のはずです

4

1 に答える 1

11

データ型は正しい値を保持していますが、間違った指定子を使用しています。%ldlong intで使用する必要があります。

printf("%20ld",val1*val2);

再確認したところ、機能しました。

于 2013-05-26T07:41:31.997 に答える