• ベストアンサー

ポケコンのこと

大変申し訳ないんですが、ポケコンのことで質問です。 a,b,cの長さを入力して直方体の表面積と体積を出力するプログラムなんですが、 実行しても値が表示されません。 10 main() 20 { 30 int a,b,c,s,v; 40 scanf("%d,%d,%d",&a,&b,&c); 50 s=2*(a*b+b*c+a*c); 60 v=a*b*c; 70 printf("表面積=%d\n",s); 80 printf("体積=%d\n",v); 90 } 実行は出来ますが、a=10,b=39,c=39 とやっても0と表示されます。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

あー、もし実行段階で、 a=10,b=39,c=39 って入力してるなら論外ですよ。

その他の回答 (2)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

scanf("%d,%d,%d", &a, &b, &c); なんだから a=10,b=39,c=39 って入力してもダメで 10,39,39 って入力しないと.

回答No.1

一部文法忘れましたが、scanfで値が入っていないから0なんだと思いますよ。 scanfの文法をチェックしましょう。 カンマはどうだったかな。。。 それから、s=の前に、 printf("a=%d\n",a);みたいに入れてちゃんと入ってるかチェックして調べるのが定石です。

関連するQ&A

  • 書いたプログラムの間違いを教えてください

    こんにちは。 C言語を学習し始めた者です。 「三角形の3辺を入力し、その面積を出す」という課題で、下のように書き、実行しました。 しかし、面積がいつも-0.00になってしまいます。 どの部分が間違っているか教えてください。 #include <stdio.h> #include <math.h> main() { double a,b,c,s,S; s=(a+b+c)/2; S=sqrt(s*(s-a)*(s-b)*(s-c)); printf("三角形の長さを入力:"); scanf("%lf %lf %lf",&a,&b,&c); if(s>0){ printf("面積は%.2lfです。\n",S); } else{ printf("これは三角形ではありません。\n"); } }

  • 整数を3つ読み込み、一番大きいものを表示するプログラム

    3つが違う数であるとしてこうしたんですが、 #include<stdio.h> int main() {int a,b,c; scanf("%d",&a); scanf("%d",&b); scanf("%d",&c); if(a>b && a>c){ printf("%d\n",a);} if(b>a && b>c){ printf("%d\n",b); if(c>a && c>b){ printf("%d\n",c); }}return 0;} で、コンパイルはできたんですが、実行できません。3つの数値を入力してもその一番大きい数が出てきません。ifの条件は間違ってはいないと思うんですがやはり、最大が2つあるときのことを考えないとできませんか?

  • プログラムがうまくいきません。教えてください。

    プログラムがうまくいきません。教えてください。 #include <stdio.h> int main(void){ int a, b, c, d, f; printf("国語="); scanf("%d", &a); printf("算数="); scanf("%d", &b); printf("理科="); scanf("%d", &c); printf("社会="); scanf("%d", &d); f = ((a>90)?1:0)+((b>90)?1:0)+((c>90)?1:0)+((d>90)?1:0); printf("\n合計[%d],平均[%.2f]\n",(a+b+c+d),((double)(a+b+c+d)/4.0)); printf("国語[%d],[%.3f%%],[%d]\n",a,((double)a/1.5),((a>90)?1:0)); printf("算数[%d],[%.3f%%],[%d]\n",b,((double)b/1.5),((b>90)?1:0)); printf("理科[%d],[%.3f%%],[%d]\n",c,((double)c/1.5),((c>90)?1:0)); printf("社会[%d],[%.3f%%],[%d]\n",d,((double)d/1.5),((d>90)?1:0)); printf("総合判定[%d],\n", ((f>=3)?1:0)); return (0); } と入力したのですが、実行結果の国語から社会までの[]部分を上下揃えたいのですが揃いません。このプログラムにどのようなことを追加すれば揃えることができますか?教えてください!

  • 警告 W8065について。

    このプログラムを実行したら、実行結果は思い通りになったのですが、 「警告 W8065…プロトタイプのない関数」 と言うのが出ました。  (1)これを消すにはどうすればよいのかを教えてください。  (2)このプログラムはわざと4つに分けているのでこの状態のままプログラムのどこをいじればよいのかを教えてください。 OSはWindows XPでボーランドのコンパイラを使用しています。 #include<stdio.h> int hiki(); int kake(); int waru(); int main(){ int a,b; printf("一つ目の数字\n"); scanf("%d",&a); printf("二つ目の数字\n"); scanf("%d",&b); printf("計%d\n",a+b); hiki(); return 0; } int hiki (){ int c,d; printf("一つ目の数字\n"); scanf("%d",&c); printf("二つ目の数字\n"); scanf("%d",&d); printf("計%d\n",c-d); kake(); return 0; } int kake (){ int e,f; printf("一つ目の数字\n"); scanf("%d",&e); printf("二つ目の数字\n"); scanf("%d",&f); printf("計%d\n",e*f); waru(); return 0; } int waru (){ int g,h; printf("一つ目の数字\n"); scanf("%d",&g); printf("二つ目の数字\n"); scanf("%d",&h); printf("計%d\n",g/h); return 0; }

  • C初心者です。どうかお助けを

    独習Cという本で独学中なのですが #include<stdio.h> int main() { int a,b; char ch; printf("実行したい演算は\n"); printf("加算(A)、減算(S)、乗算(M)、除算(D)のどれですか\n"); do{ printf("アルファベットの1文字を入力してください:"); ch=getchar(); while(getchar()!='\n'); }while(ch!='A' && ch!='S' && ch!='M' && ch!='D'); printf("\n"); printf("最初の数字を入力してください:"); scanf("%d",&a); printf("二つめの数字を入力してください:"); scanf("%d",&b); switch(ch){ case 'A': printf("%d",a+b); break; case 'B': printf("%d",a-b); break; case 'C': printf("%d",a*b); break; case 'D': if(b!=0)printf("%d",a/b); } return 0; } このプログラムでの14行目の while(getchar()!='\n');の必要性がわかりません。 どなたか有識者の方の回答をお願いします。

  • 3つの入力した数値の大小比較ができません。

    #include<stdio.h> int main() { int a,b,c; scanf("%d",&a); scanf("%d",&b); scanf("%d",&c); if(a<b) { if(b<c) { if(a<c) { printf("%d<%d<%d\n",a,b,c); } else { printf("%d%d%d",a,b,c); } } if(b>c) { if(a>c) { printf("%d<%d<%d\n",c,b,a); } else { printf("%d<%d<%d\n",a,c,b); } } } else if(a>b) { if(b>c) { if(a>c) { printf("%d>%d>%d\n",a,b,c); } else { printf("%d>%d>%d\n",a,c,b); } } else if(b>c) { if(a>b) { printf("%d>%d>%d\n",a,b,c); } else { printf("%d>%d>%d\n",b,a,c); } } else if(c>b) { if(c>a) { printf("%d<%d<%d\n",b,a,c); } else { printf("%d>%d>%d\n",a,c,b); } } else if(a<c) { if(a<b) { printf("%d<%d<%d\n",a,b,c); } else { printf("%d<%d<%d\n",b,a,c); } } else if(a>c) { if(a<b) { printf("%d>%d>%d\n",b,a,c); } else { printf("%d>%d>%d\n",a,b,c); } } else { printf("%d=%d=%d\n",a,b,c); } } 間違っている部分を教えてください。

  • sscanf エラー

    sscanfで整数が読み込めません。 コマンドプロンプトの画面は以下のようです。 文章を入力してください。 aaaa 11 14 aaaa 4201776 4201870 1 以下が実行したコードです。 #include<stdio.h> int main(void){ int a,b,c,i; char name[20]; printf("文章を入力してください。\n"); scanf("%s",x); c=sscanf(x,"%s %d %d",name,&a,&b); printf("%s %d %d %d\n",name,a,b,c); return(0);} aaaa 11 14と表示されるように、御指摘おねがいします。

  • while文のデータの終わり

    C言語なんですが 購入合計金額を求めるプログラムで、 1回のプログラム実行で、続けて何回でも計算を行い、 えんぴつの購入数に999を入力すると計算を終了するようなプログラムを作りたいのですが、 #include <stdio.h> main() { int a,b,c,goukei; a=b=c=0; while(a!=999){ printf("商品をいくつ買いますか??\n"); printf("えんぴつ   = "); scanf("%d",&a); printf("消しゴム   = "); scanf("%d",&b); printf("ボールペン = "); scanf("%d",&c); goukei=a*100+b*150+c*200; printf("合計購入価格は%d円です\n\n",goukei); } } 上のようなソースを作ったのですが えんぴつのところに999を入力してもプログラムが終了せずに続いてしまいます… 試行錯誤してもうまくいきません。 どこが間違っているのでしょうか?

  • ヘロンの公式を作ったプルグラムなのですが、プログラムの間違いを教えてください。

    プログラムの間違いを教えてください ヘロンの公式を作ったプログラムなんですが・・・ #include <stdio.h> #include <math.h> void main(void) { float a,b,c,s,x; printf("三角形の三辺の長さを入れてください\n"); printf("a="); scanf("%f",&a); printf("b="); scanf("%f",&b); printf("c="); scanf("%f",&c); s=(a+b+c)/2; x= sqrt(s*(s-a)*(s-b)*(s-c)); printf("\n%f",x); }

  • Cのプログラム(初心者)

    #include<stdio.h> void main(void) { int a,b,c; printf("西暦で生まれた年を入力してください。\n"); scanf("%d",&a); printf("今の年を西暦で入力してください。\n"); scanf("%d",&b); c=b-a; if('0'<=c&&c<='23'){ printf("あなたは%d歳です。げんき。\n",c); } else if('24'<=c&&c<='40'){ printf("あなたは%d歳です。仕事盛り。\n",c); } else if('41'<=c&&c<='60'){ printf("あなたは%d歳です。まだいける。\n",c); } else if('61'<=c&&c<='99'){ printf("あなたは%d歳です。がんばれ。\n",c); } else{ printf("100歳以上なの?\n"); } } というプログラムを作っているのですが、うまく実行できません。間違いがあると思うのですが、それもよくわかりません。ビルドは成功するのですが、どの数字を入力しても「げんき」しか出てきません。 わかる人がいたら教えてください。 お願いします。

専門家に質問してみよう