- 締切済み
C言語についてなんですが
プログラムの作成で分からないところがあります。 「二つの整数値を読み込み、小さいほうの数以上で大きい数以下の 整数を全て加えた値を表示するプログラムをdo文を使って 作成せよ。」 下の図のようにしたいです。 2つの整数を入力せよ。 整数A:37 整数B:28 28以上37以下の全整数の和は325です。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- futtonda-
- ベストアンサー率0% (0/0)
こんなかんじかねぇ。 #include <stdio.h> void input(int *a, int *b) { printf("整数A: "); scanf("%d",a); printf("整数B: "); scanf("%d",b); } int set_min(int a, int b) { return ((a <= b) ? a : b); } int set_max(int a, int b) { return ((a <= b) ? b : a); } int calcsum(int c, int d) { int ans = 0, i; for (i = c; i <= d; i++) ans += i; return ans; } int main(void) { int a, b, c, d, sum; input(&a,&b); c = set_min(a,b); d = set_max(a,b); sum = calcsum(c,d); printf("%d以上%d以下の全整数の和は%dです。\n",c,d,sum); return 0; } # それにしても行頭に半角スペースやタブを入れると # 勝手に削除されてしまう仕様は何とかならないのか。
- kmee
- ベストアンサー率55% (1857/3366)
すみません。問題見間違えてました。 たしかにdoを使う方法もあります。
お礼
回答ありがとうございます。
- akr104
- ベストアンサー率49% (25/51)
つまり、こんな感じなんでしょうか? (ただし、a<bという条件でやっています。逆の場合は入れ替える処理を加えて下さい) sum = 0 do{ sum += a a++ }while(a <= b) これで、aから始まり、bと等しくなるまでaに1を足し続け、合計を求める文になると思います。
お礼
そんな感じですね。回答ありがとうございます。
- kmee
- ベストアンサー率55% (1857/3366)
具体的にどこがわからないのでしょうか? もし「全然わからない」なら、それは質問ではなく「プログラム作成依頼」です。 勉強を最初からやりなおしてください。 こちらとしても do を何に使うのか、わかりません。 その問題文だけだと、doを使う必要がまったくないですから。
お礼
ありがとうございます。
お礼
ありがとうございます。