質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

4回答

2431閲覧

前置きせずにこのプログラムを実行したい

退会済みユーザー

退会済みユーザー

総合スコア0

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2016/04/20 07:21

編集2016/04/20 08:16

c

1#include <stdio.h> 2int main(){ 3 int a, b, min, max; 4 int sum = 0, cnt = 0; 5 printf("整数a : "); scanf("%d", &a); 6 printf("整数b : "); scanf("%d", &b); 7 min = a < b ? a : b; 8 max = b < a ? a : b; 9 sum = a + b; 10 while (min++ < max--){ 11 cnt++; 12 } 13 printf("%d以上%d以下の全整数の和は%dです。\n", min-cnt, max+cnt, sum*cnt); 14 15 return 0; 16}

整数a : 1
整数b : 100
2以上99以下の全整数の和は5050です。

整数a : 1
整数b : 100
1以上100以下の全整数の和は5050です。

にしたいです。

while文変数初期化の部分をどうにかすればうまくできそなきがするのですが・・・

全くわかりません。
解くための鍵をください。生意気ですが、答えは書かないでください>_<

何卒よろしくお願い致します。

前置演算をしてはいけない理由はなく、ただ単に前置をせずにしてみたいだけです。

解決しました?

#include <stdio.h> int main(){ int a, b, min, max; int sum = 0, cnt = 0; printf("整数a : "); scanf("%d", &a); printf("整数b : "); scanf("%d", &b); min = a < b ? a : b; max = b < a ? a : b; while (min++ < max--){ sum += min + max; } printf("%d以上%d以下の全整数の和は%dです。\n", a < b ? a : b , b < a ? a : b, sum); return 0; }

ありがとうございます。
正しいかは、わかりませんが、自分なりに考えてみました。
みなさんの回答を教えてください>_<

解決しました???

c

1#include <stdio.h> 2int main(){ 3 int a, b, min, max; 4 int sum = 0, cnt = 0; 5 printf("整数a : "); scanf("%d", &a); 6 printf("整数b : "); scanf("%d", &b); 7 min = a < b ? a : b; 8 max = b < a ? a : b; 9 sum = max * (max+min) / 2; /* これはしたくない min++ < max-- が成り立つ回数を cnt とし、 cnt * (min + max) のようなプログラムを実行したかった・・・*/ 10 printf("%d以上%d以下の全整数の和は%dです。\n", min, max, sum); 11 12 return 0; 13}

###みなさんありがとうございます。正しいプログラムでは書けませんでしたが、何かがつかめそうなので、一旦保留とします。
###時間をかけてじっくり考えます!!!!ありがとうございます!!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ベストアンサー

こんにちは。

アルゴリズムはそれで正しいでしょうか?
1と99を入力してみてください。1以上99以下を加えた値とは異なる値になります。
もし、お望みのように修正できた場合、

整数a : 1
整数b : 99
1以上99以下の全整数の和は4900です。

と出力されると思います。
しかし、実際に1以上99以下の全整数を加えると4950になります。


【追記】
私なら単純に下記ですね。

C

1sum=0; 2for (int i=min; i <= max; ++i) sum += i; 3printf("%d以上%d以下の全整数の和は%dです。\n", min, max, sum);

私はシンプル・イズ・ベストが好きです。

投稿2016/04/20 07:54

編集2016/04/20 08:06
Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/04/20 07:59

ありがとうございます!! 気づきませんでした・・・
退会済みユーザー

退会済みユーザー

2016/04/20 08:20

全く思いつきませんでした v(^_^)v 勉強になりました!! ありがとうございます!!
guest

0

a:1
b:100
の場合

min と max それぞれいくつになったらループが終わりますか?
そのときの cnt はいくつですか?

ひとつひとつ、変数にどのような値が入っているかを理解すれば、書くべきコードにたどり着けると思います

ついでに、 a と b が同値(イコール)だった場合も考えてみましょう

がんばってください

投稿2016/04/20 07:41

takito

総合スコア3111

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/04/20 07:48 編集

> 変数にどのような値が入っているかを理解すれば ものすごく参考になりました!!! ありがとうございます!!!
guest

0

まずそれぞれの箇所でどういった数値が 実際に 入っているか、確認して行ったらいかがでしょうか。

どこか自分が思っているものと違うものがあるかと思います。

投稿2016/04/20 07:36

kaz.Suenaga

総合スコア2037

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/04/20 07:48

>まずそれぞれの箇所でどういった数値が 実際に 入っているか、確認して行ったらいかがでしょうか。 とても参考になりました!! ありがとうございます!!!
guest

0

なんか良くわからない(自分が理解していないだけ)計算で出力しているからじゃないですか?
printfのところを次のように単純に出力できるようにすると良いと思います。

C

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

答えは書くなとのことなので、このprintfが使えるように直前のループの処理を見直してみてはいかがでしょうか。

投稿2016/04/20 07:35

ttyp03

総合スコア16998

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/04/20 07:56

ありがとうございます!!! ぼんやりとは浮かんでいるのですが、実態がつかめません>< 一応、自分なりに別の方法を見つけられたので、よろしければあなたの解き方を教えてください!!!!
ttyp03

2016/04/20 08:10

ループのところをこう書き換えます。 for( cnt = min; cnt <= max; cnt++ ){ sum = sum + cnt; }
退会済みユーザー

退会済みユーザー

2016/04/20 08:18

なるほど!!! 全く思いつきませんでした!! ありがとうございます!! 勉強になりました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問