ページ 11

二つの整数を入力してその間の全整数の和を出力

Posted: 2017年4月19日(水) 15:45
by 下忍乗り
  1. #include <stdio.h>

    int main(void)
    {
    int no, no1, no2;
    int max, min;
    int sum = 0;

    do{
    printf("正の整数を二つ入力してください。\n");

    printf("整数1:");scanf("%d",&no1);

    printf("整数2:");scanf("%d",&no2);
    }while(no1 < 0 || no2 < 0);

    if (no1 > no2) {
    max = no1;
    min = no2;
    } else {
    max = no2;
    min = no1;
    }

    no = min;
    do {
    sum = sum + no;
    no = no + 1;
    } while (no <= max);

    printf("%d以上%d以下の全整数の和は%dです。\n", min, max, sum);

    return 0;
    }
今現在このようなプログラムを作ったのですがうまく起動できません。
プログラム自体はあってますか??

Re: 二つの整数を入力してその間の全整数の和を出力

Posted: 2017年4月19日(水) 19:29
by box
うまく起動できない、というのは、どういった状況を指していますか?
コンパイルはできるけど、実行結果が思ったとおりにならないということですか?

Re: 二つの整数を入力してその間の全整数の和を出力

Posted: 2017年4月19日(水) 23:06
by 下忍のり
コンパイルはできますが、二つの整数を入力した後動作が止まってしまいます。

do while文が間違っていて無限ループしているかとも思ったのですが、
間違っている箇所が見つからない状態です。

Re: 二つの整数を入力してその間の全整数の和を出力

Posted: 2017年4月19日(水) 23:19
by box
こちらの環境で下のようなコードを実行したら、ちゃんと答えが出ます。

コード:

#include <stdio.h>

int main(void)
{
    int no, no1, no2;
    int max, min;
    int sum = 0;

    do {
        printf("正の整数を二つ入力してください。\n");
        printf("整数1:"); scanf("%d", &no1);
        printf("整数2:"); scanf("%d", &no2);
    } while(no1 < 0 || no2 < 0);

    if (no1 > no2) {
        max = no1;
        min = no2;
    }
    else {
        max = no2;
        min = no1;
    }

    no = min;
    do {
        sum = sum + no;
        no = no + 1;
    } while (no <= max);

    printf("%d以上%d以下の全整数の和は%dです。\n", min, max, sum);
    return 0;
}

Re: 二つの整数を入力してその間の全整数の和を出力

Posted: 2017年4月19日(水) 23:35
by かずま
下忍のり さんが書きました:コンパイルはできますが、二つの整数を入力した後動作が止まってしまいます。

do while文が間違っていて無限ループしているかとも思ったのですが、
間違っている箇所が見つからない状態です。

コード:

    printf("整数1:");scanf("%d",&no1);

    printf("整数2:");scanf("%d ",&no2);
このように 2番目の scanf の書式の最後に空白が入っていませんか?

Re: 二つの整数を入力してその間の全整数の和を出力

Posted: 2017年4月19日(水) 23:39
by 下忍乗り
皆さんありがとうございました!


無事実行できました。

Re: 二つの整数を入力してその間の全整数の和を出力

Posted: 2017年4月19日(水) 23:49
by かずま
下忍乗り さんが書きました:無事実行できました。
何が悪かったのかを書いてください。