10622


Cで横並びに数を入力、表示したいです。  
「標準出力に半角数字でaとbの値の大きい方を出力してください。aとbが同じ値の場合は半角小文字アルファベットで「eq」と出力してください」という問題です。

[code]

    #include <stdio.h>
    int main(void){
        int a, b;
        scanf("%d", &a); scanf("%d", &b);
    
        if(a == b)
            printf("eql");
        else if(a > b)
            printf("%d\n", a);
        else if(b > a)
            printf("%d\n", b);
    }
    
[/code]

上記のように書きました。  
数を入力するときにscanf()やgets()を使うと勝手に改行されてしまいます。  
改行をせずに表示するにはどうすればいいのでしょうか？


CC BY-SA 3.0
2015-05-25T12:39:05.787
10603
2015-05-26T01:31:56.493
2015-05-25T15:08:52.770
440
9850
question
c
Cで横ならびに数を入力、表示したい


`scanf("%d %d", &a, &b);`で横並びに入力できます。

[code]

    #include <stdio.h>
    
    int main(void){
    
        int a=0;
        int b=0;
    
        scanf("%d %d", &a, &b);
    
        if(a > b){
            printf("%d\n", a);
        }else if(b > a){
            printf("%d\n", b);
        }else{
            printf("eq\n");
        }
    
        return 0;
    }
    
[/code]

実行時はスペース区切りで入力します。

[code]

    $ a.aut
    12 24
    24
    
[/code]

実行結果：<http://melpon.org/wandbox/permlink/t9VvsGcPwSImrKeL>


CC BY-SA 3.0
2015-05-26T00:42:44.940
10622
2015-05-26T00:42:44.940
7214
10603
answer


お使いの端末上で以下を実行してみて下さい。

[code]

    $ stty -icanon min 1 time 0
    
[/code]

その上で当該コマンドを実行します。

[code]

    $ ./a.out
    10 10 eql  # <= "10 10" と入力した後、スペースを入力すると判定結果が同じ行に出力されます
    
[/code]

とは言うものの、stty コマンド等で端末制御が可能な環境でのみ有効な方法ですので、Windows OS で cmd.exe
をお使いの場合には当てはまらないと思います。まぁ、ご参考程度にどうぞ。


CC BY-SA 3.0
2015-05-26T01:31:56.493
10625
2015-05-26T01:31:56.493
10603
answer