- ベストアンサー
C言語について質問です。このプログラムの作成方法
以下のプログラムは隣の数を引いた値が下に行き、すべての数字が重ならないようにするプログラムです。完成したのは良いですが、凄く見にくいプログラムになってしまいました。 見やすいように修正箇所を教えて頂けますか? ttp://ideone.com/cJyaH
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (5)
- 麻野 なぎ(@AsanoNagi)
- ベストアンサー率45% (763/1670)
- 麻野 なぎ(@AsanoNagi)
- ベストアンサー率45% (763/1670)
- 麻野 なぎ(@AsanoNagi)
- ベストアンサー率45% (763/1670)
- 麻野 なぎ(@AsanoNagi)
- ベストアンサー率45% (763/1670)
- asuncion
- ベストアンサー率33% (2126/6288)
関連するQ&A
- C言語について質問です。このプログラムの作成方法
1から10の数字の隣と隣を引いた値を下に表示させるプログラムを作りたいです。 ただし使用する数字は同じ数字を使ってはいけない事。 上記のようなプログラムを作りたいのですが、for文とif文を使って作成可能でしょうか? ご指導お願いします。 数値=□ イメージ図 □ □ □ □ □ □ □ □ □ □
- ベストアンサー
- C・C++・C#
- C言語についてなんですが
プログラムの作成で分からないところがあります。 「二つの整数値を読み込み、小さいほうの数以上で大きい数以下の 整数を全て加えた値を表示するプログラムをdo文を使って 作成せよ。」 下の図のようにしたいです。 2つの整数を入力せよ。 整数A:37 整数B:28 28以上37以下の全整数の和は325です。 よろしくお願いします。
- 締切済み
- C・C++・C#
- C言語のプログラムみてください(isdigit)
質問は2つあります。 (1) scanf関数を使って、 時給: と表示されたところに一文字打ち込み、数字以外ならばもう一度 時給: と表示されるプログラムを作りたいです。 以下のプログラムなら、 isdigit関数は数字を渡せば0以外の数を返す(真)から、 while文の条件式(偽)のようにすれば、 ・数字を一文字うちこめばwhile文の条件式にあてはまらない、すなわち下のプログラムではisdigit(payment) != 0 となり、return 0; が実行され、プログラムが終わる ・数字以外を一文字打ち込めばwhile文の条件式が真となり、printf関数とscanf関数が実行されて入力待ち状態になる と思ったのですが、どうやら違うようです。実際には ・数字一文字打てばまた入力待ちになる ・数字以外を一文字打てば永遠にprintf関数とscanf関数が実行される のはなぜでしょうか。 #include <stdio.h> #include <ctype.h> int main(void){ int payment; do{ printf("時給[円]:"); scanf("%d",&payment); } while (isdigit(payment) ==0) ; return 0; } (2) 実際には、一文字の制限なく、数字以外の何かを入力したら、再び入力待ちになるプログラムを作りたいのですが、これはどうしたらいいのでしょうか。 つまり 時給: のところに数字以外ならまた 時給: となるようにしたいのです。お願いします。
- ベストアンサー
- C・C++・C#
- C言語でサイコロのプログラムを作ってみたのですが
まず、以下のような”実行するたびに1~6の数字をランダムに出力するプログラム”を 作ってみたのですが、特定の数字が出てこないのです。 例えば、1と4、2と5、3と6 が出ない ここで気がついた事は、 1、出ない目の2数の差は3であること。 2、乱数自体を表示させたところ、ちゃんと1秒毎に乱数は変わっている。こちらには問題はない 3、約1分間隔で、出ない数字の組み合わせが変わる。 (例えば 1,3,4,6,1,6,3,6,4(2と5が出ない) →1分間実行し続けると・・・ 2,3,6,5,3,2,2,6(1と4が出ない)) この原因は一体なんなのでしょうか・・・ とても気になって仕方がありません。わかる方教えてください。 以下、ソースコードになります #include<stdio.h> #include<time.h> #include<stdlib.h> int func(void); int main(void){ int number=0; number=func(); //サイコロの目の表示 printf("%d\n",number); return 0; } int func(){ //乱数の初期化 srand((int unsigned)time(NULL)); //サイコロの目をランダムで出力し、返す return rand()%6+1; } プログラムの仕組みは パソコンから現在の歴時刻を元に乱数の初期値を変更 ↓ rand関数で適当な値を受け取り、6で割った余剰+1を計算し値を返却する
- ベストアンサー
- C・C++・C#
- C言語の質問。
課題が出たのですがよくわからないので回答していただける方お願いします。 # 次のようにキーボードから4桁の10進数の入力を2回受付ける. Input the 1st value > 6479 Input the 2nd value > 1497 但し,4桁の各位の数は必ず互いに異なるものが入力されるとする. # 入力された数値に対して,以下に定義する「ヒット数」と「ホームラン数」を求める. * ホームラン数: 二つの数字を同じ位ごとに比較した時,何ヶ所の位について一致しているかを表す. * ヒット数: 二つの数字を異なる位同士で比較した時,一致している組み合わせの数を表す. 例 1234と1234の場合,0ヒット4ホームラン 1234と4321の場合,4ヒット0ホームラン 6479と1497の場合,2ヒット1ホームラン # ヒット数とホームラン数を次のように表示する. 2 hit(s) 1 home run(s)
- 締切済み
- C・C++・C#
- C言語プログラム
こんな課題が出たのですが、さっぱりわかりません。 誰か解る人がいたら教えてほしいです。 1 3+5+7+…+nと奇数の和を求め、和が100を越えたときのnの値を求めて表示するプログラムをdo~whileを使って作成しなさい。 2 キーボードから3つの数を読み込み、最大値を求める処理を繰り返し行うプログラムを、do~whileを使って作成しなさい。繰り返しの終了は、計算のあとで、'S'(1文字)が入力されるまでとし、それ以外の文字では、処理を続行すること。 3 整数型1次元配列kに整数123,456,789をそれぞれ代入し、その内容を表示するプログラムを作成しなさい。 4 文字型1次元配列strに'u'を、'n'、'i'、'x'それぞれ代入し、その内容を文字列として出力するプログラムを作成しなさい。 5 要素数50の整数型1次元配列mの要素すべてに、その添字に対応した0~49の数値を代入し、その内容を表示するプログラムを作成しなさい。 3は #include <stdio.h> main() { int k[3]; k[0] = 123; k[1] = 456; k[2] = 789; printf("%d\n%d\n%d", k[0], k[1], k[2]); return 0; } と解いてみたんですが、やっぱ間違えてますよね?
- ベストアンサー
- C・C++・C#
- C言語(問題)
高校で使っているC言語の参考書の問題でどうしてもわからない部分があり悩んでます。 問題 正の二桁の整数をキーボードから入力し,その値を初期値として以下の増加値に従って増加を続け,それぞの値を表示する値が100以上になったら終了し,各値の総和およびデータ数を表示する。 増加値は入力した初期値の下一桁によって以下のように設定される。 ・初期値の下一桁が1または6のとき増加値は8 ・初期値の下一桁が2または7のとき増加値は3 ・初期値の下一桁が3または8のとき増加値は10 ・初期値の下一桁が4または9のとき増加値は5 ・それ以外のとき増加値は6 実行結果例 正の二桁の整数を入力してください 45 45 51 57 63 69 75 81 87 93 99 総和は 720 です データ数は 10 個です この問題をswitch-caseを使用して回答せよとのことなのですが初期値の下一桁の部分のプログラムがよくわかりません。。 回答お待ちしています。よろしくお願いします。。
- ベストアンサー
- C・C++・C#
- C言語のプログラムについて
大学のテストの確認をしているのですが、この問題の回答がどうしても分かりません。どなたか教えてください。 9桁以内の整数を入力し、int型の変数に格納し表示するプログラムを作成しなさい。 ただし、先頭は、数字か「+」か「-」とし、それ以外はすべて数字とする。この条件に合わないものおよび10桁以上のものは、「入力エラー」として表示後、再入力を行うこと。 例えば「-123456」や「45678989」は、整数としてint型の変数に格納し、「abcd」や「123-234」は、「入力エラー 」を表示し、再入力を行う。 ---------------------------------------------------------------- また、自動判定の都合上、表示は以下の表示例に準拠すること。 【 23-234 *12345 -123456 を入力した例】 入力エラー 入力エラー 整数は、-123456 です。 お願いします
- 締切済み
- C・C++・C#
- C言語!プログラム書いたのですがエラーです!
課題内容 キーボードから数字を入力してその値までの合計を表示する。 さらに入力した値が偶数なら0から入力した値までのすべての偶数の和を 入力した値が奇数なら1から入力した値までのすべての奇数の和を表示するプログラム。 #include<stdio.h> int main(void) { int i, n, sum; sum=0; scanf("%d",&n); printf("入力値:%d\n", n); if(n%2 = 0) { for(i=0;i<=n;i+=2) { sum=sum+i; } printf("合計値:%d\n",sum); } else { for(i=1;i<=n;i+=2) { sum=sum+i; } printf("合計値:%d\n",sum); } return(0); } これでコンパイルすると10行目に左辺値が必要とでます。 どうすればよいでしょうか? 教えてください。よろしくお願いします。
- ベストアンサー
- C・C++・C#