• 締切済み

ソースコードの確認をお願いします。

コラッツの問題についてのプログラムです。 #include<stdio.h> #include<math.h> main() { int a,b; printf("aに値を入れてください。"); scanf("%d",&a); while(a==1){ if(!(a%2)) {a=a/2; printf("%d",a);} else {a=3a+1; printf("%d",a);} } printf("完了"); } このプログラムでは ”14: ステートメントにセミコロン(;)がない(関数 main() )” というエラーが出てしまいます。 どこが悪いんでしょうか?

みんなの回答

  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.5

こんにちわ。 > printf("%d",a); > の効果がなかったんですが・・・ バッファにためられて、出力されていない事が考えられます。 printf("完了\n"); と、最後に改行文字を出力して見て下さい。

  • HOGERA3
  • ベストアンサー率35% (50/139)
回答No.4

>printf("%d",a); >printf("%d",a); >の効果がなかったんですが・・・ aの値として何を入力しました? scanf("%d",&a); while(a==1){ となっていますから、aに1以外の値を入れると while文を素通りします。

  • keyguy
  • ベストアンサー率28% (135/469)
回答No.3

削除要求: タッチの差でした。

  • keyguy
  • ベストアンサー率28% (135/469)
回答No.2

a=3*a+1;に変更すべし。

  • HOGERA3
  • ベストアンサー率35% (50/139)
回答No.1

else の次の行 a=3a+1; を a= 3 * a + 1; にしましょう。

altair1314
質問者

補足

回答ありがとうございました。 おかげさまで、コンパイルはできました。 しかし、 printf("%d",a); printf("%d",a); の効果がなかったんですが・・・

関連するQ&A