C言語のテスト結果の合計点を計算するプログラムが動作しない
- C言語のテスト結果の合計点を計算するプログラムが正常に動作しない状況です。
- printfとscanfの部分が反応しないため、テスト結果の入力ができず、合計点も計算できない状態です。
- プログラムを実行しても正常に動作せず、テスト結果の合計点を求めることができない状態です。打開策を教えていただけると助かります。
- ベストアンサー
printf scanf が、反応しません。
printf scanf が、反応しません。 #include <stdio.h> int main(void) { int num = 0; int sum = 0; printf("テストの点数を入力してください。(0で終了)\n"); do{ scanf("%d", &num); sum += num; }while(num); printf("テストの合計点は%d点です。\n", sum); return 0; } C:\WORK>gcc test1.c C:\WORK>gcc -o test1 test1.c おかしいです。 打開策を教えてください。 ご多忙中恐れ入ります。 ご回答のほど、宜しくお願い申し上げます。
- jump7799
- お礼率91% (793/864)
- C・C++・C#
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
scanfを使っている点がちょっと危ういですが、プログラム自体に間違ったところは無いです。 実行したらどうなるのでしょうか?
関連するQ&A
- printf scanf が、反応しません。
#include <stdio.h> /*構造体struct carの宣言*/ struct Car{ int num; double gas; }; int main(void) { struct Car car1; printf("ナンバーを入力してください。\n"); scanf("%d", &car1.num ); printf("ガソリン量を入力してください。\n" ); scanf("%lf, &car1.gas"); printf("車のナンバーは%d:ガソリン量は%fです。\n", car1.num,car1.gas); return 0; } C:\WORK>gcc test18.c C:\WORK>gcc -o test18 test18.c いつも教えて頂き、誠にありがとうございます。 上記の件。 println scanfが反応しません。 どうすればいいでしょうか? ご回答のほど、宜しくお願い申し上げます。
- ベストアンサー
- C・C++・C#
- for文
#include <stdio.h> int main(void) { int i; int sum=0; int num, tmp; printf("整数は何個かな:"); scanf("%d",&num); for(i=0; i<num; i++){ printf("No.%d:",i+1); scanf("%d",&tmp); sum+=tmp; } printf("合計値は:%d\n",sum); printf("平均値は:%.2f\n", (double)sum/num); return(0); } 上の文のforの箇所を for(i=1; i<=num; i++){ printf("No.%d:",i); scanf("%d",&tmp); sum+=tmp; } としても結果的に同じですよね? どっちでもいいかどうか迷ってます。教えて下さい。
- ベストアンサー
- C・C++・C#
- ループ
#include<stdio.h> int main(void) { int i=1,sum=0; int num=1; while(num>0) { printf("整数を入力してください。(マイナスの値で終了)\n"); scanf("%d",&num); printf("%dが入力されました。(%d番目の繰り返しです)\n",num,i); sum+=i; printf("1から%dまでをたすと%dです。\n",i,sum); i++; } printf("繰り返しが終わりました。\n"); printf("加算値は%dです。\n",sum); printf("%d回繰り返しました。\n",i); return 0; } このプログラムで101以上の数値は加算しないようにするにはどうすればいいですか。
- ベストアンサー
- C・C++・C#
- 文字列をint型へ変換するには?
c言語初心者です。 こちらのプログラムだとうまく表示されません何故でしょう? わかる方是非教えていただきたいと思います。 #include<stdio.h> #include <stdlib.h> int main() { int num ; char sum1[4]; printf("数字 str1 =>"); scanf("%d",&num); num= atoi(sum11); printf("sum1= [%d]\n",num); } コマンドに数字を入力したあとintに変換してnumに表示させたいのですが、、、、
- ベストアンサー
- C・C++・C#
- printfでの計算結果がおかしくなります。
#include <stdio.h> main() { int first_num, second_num, third_num; /* 入力される3整数 */ int answer; /* 掛け算の答え */ printf("Input Integer Number 1 > "); scanf("%d", &first_num); printf("Input Integer Number 2 > "); scanf("%d", &second_num); printf("Input Integer Number 3 > "); scanf("%d", &third_num); answer = first_num * second_num * third_num; printf("%d * %d * %d= %d\n", first_num, second_num, third_num, answer); exit(0); } というプログラムを作りコンパイルして、いざ実行して 以下の計算をさせると。 10000×10000×10000=-727379968 という計算結果になってしまいます。 なんども確認したのですが、間違っているところはないと思います。
- ベストアンサー
- C・C++・C#
- scanf()関数の使い方について
はじめまして。 質問があります。 まずは、以下のコードを見てください。 ---------------------------------------------------------------- #include<stdio.h> int main(void) { char c; int i; printf("0を入力すると終了します。\n"); while(1) { printf("文字を入力してください=>"); scanf("%c",&c); printf("入力した文字は %c です。\n",c); printf("数字を入力してください=>"); scanf("%d",&i); if(i==0) { break; } printf("入力した数字は %d です。\n",i); } return 0; } ---------------------------------------------------------------- 上のコードを実行すると、初回はscanf()はcharとintの両方とも 入力待ちになってくれるのですが、2回目以降はcharは入力待ちに なってくれません。これは、なぜなのでしょうか? ご教授お願いします。 現在VC++6.0を使用しております。
- ベストアンサー
- C・C++・C#
- コンパイルエラー
コンパイルしても、12行目(printf("%d番目の整数を入力してください。"i+1);が、関数呼び出しに)がないとでます。でもどこが間違っているか分かりません。 教えてください。お願いします。 #include <stdio.h> int main(void) { int num; int sum=0; int i; for(i=0; i<10; i++){ printf("%d番目の整数を入力してください。"i+1); scanf("%d", &num); sum+=num; } printf("合計は、%dです。\n", sum); return(0); }
- ベストアンサー
- C・C++・C#
- C言語初心者です。次の問題で質問です。
(問題) 二つの整数値を読み込んで、小さい方の数以上で大きい方の数以下の整数を全て加えた値表示するプログラムを作成せよ。 (自分の解答) #include <stdio.h> int main(void) { int num1,num2; int sum=0; do { printf("整数1>整数2となる整数をそれぞれ入力してください\n"); printf("整数1:"); scanf("%d",&num1); printf("整数2:"); scanf("%d",&num2); if (num1 < num2) printf("整数1>整数2としてください\n"); } while (num1 < num2); printf("%d以上%d以下の全整数の和は",num2,num1); for (num2;num2 <= num1;num2++) { sum=sum+num2; } printf("%dです。",sum); return 0; } これでも一応正しく実行されるのですが、ごちゃごちゃしてるので簡潔に書けないでしょうか? 回答お願いします。
- ベストアンサー
- C・C++・C#
- C言語でscanf()が先に実行されるのはなぜですか?
C言語でscanf()が先に実行されるのはなぜですか? #include <stdio.h> int main(void){ int intNum; printf("整数を入力してください:\n"); scanf("%d", &intNum); printf("入力値は:%d\n",intNum); return(0); }
- 締切済み
- C・C++・C#
お礼
ご回答誠にありがとうございました。