• 締切済み

C言語のプログラミングです

#include<stdio.h> main() { int ip,amt; ip=1; amt=0; while(ip!=0){ if(0 == ip % 2){ printf("値を入力してください>"); } else{ amt += ip; printf("%d" , amt); } } printf("偶数の総和は%dです",amt); return 0; } を作成したのですが、上手く実行されませんでした。 「入力された値が偶数の時のみ総和に加えるプログラム」になるように、初心者にもわかるように解説していただけませんか?

みんなの回答

  • POMPUG
  • ベストアンサー率60% (3/5)
回答No.2

すでに他の回答に指摘があるように入力値を読み込んでませんね。 動くプログラムを書いたので、比較してみてください。 説明はコメント参照。 #include<stdio.h> int main(int argc, char ** argv) { int ip,amt; ip=1; amt=0; while(ip!=0){ /* 入力を促すメッセージ */ printf("値を入力してください"); /* 整数を変数ipに読み込ませる */ scanf("%d", &ip); /* 入力値が0だったら抜ける。 */ if(ip == 0) break; /* 入力値が偶数だったら加算する */ if(0 == ip % 2) { amt += ip; } /* if(0 == ip % 2){ printf("値を入力してください>"); } else{ amt += ip; printf("%d" , amt); } */ } printf("偶数の総和は%dです",amt); return 0; }

  • weavaest
  • ベストアンサー率15% (157/1020)
回答No.1

入力値がipに入るのだと思いますが、入力値を取り込んでませんよね。 まずはwhileとifの間で入力値を取り込んでみてはどうですか。 "値を入力してください>"は、入力を促す時常に表示するほうが良くないですか。 もし、そうするなら、入力値取り込みの前で表示ですね。現在の処理では、ipが偶数の時のみ表示になりますね。 総和を求めるロジックの位置ですが、現在はelseのほうに書かれています。これでは奇数の時に処理されますね。 whileから抜ける条件は0を入力した時という仕様ですか。 あと表示の所ですが、文字列の後ろに改行(¥n)を入れたほうが見やすいと思います。 ※こんな文章での回答を求めるより、まずは自分で処理の流れをチャートに起こしたほうが良いと思います。

関連するQ&A