• 締切済み

教えてください!プログラミング!

はじめまして 「入力した値が3の倍数のときに、10個先の3の倍数までをすべて足していく」というプログラムを作っているのですがどうしてもエラーになってしまいます・・・ 教えてください! 条件は ユーザーが値を入力すること 計算をする 分岐を使うこと 繰り返しを使うこと 結果を表示する 私がやってエラーになっているプログラムです /* kadai.c */ #include <stdio.h> main() { int seisu, gokei,handan; gokei=0; printf("整数を入力して下さい\n"); scanf("&d", &seisu); handan=seisu%3; if(handan=0) for(seisu=1; seisu<=10;) { seisu=seisu+3; gokei=seisu+gokei; printf("合計=%d\n",gokei); } else printf("できません\n"); return 0; }

みんなの回答

  • stingy
  • ベストアンサー率37% (144/379)
回答No.6

#3です。 お礼が書き込まれた時点で#5まで回答があるので かなりヒントが出てると思いますが。 >この条件式がおかしいみたいで、正しい条件式がわかりません; 日本語で表現してみてください。 ところで言語は何でしょうか? 改めて見るとカテ違い。何語かわからないと答えられません。 ふさわしいカテではいじめられましたか? 課題は投稿禁止ですから。 >合計は1回表示です Cだとしてヒントだけ if    {  for  {  }  合計の表示はここ } else >エラーになるのは >実行時にエラーメッセージがでる >実行時にいつも「できません」とでる >実行時に表示される合計がおかしい おかしくない? 実行時にいつも「できません」とでてかつ合計が表示される? >どうのようにすれば直りますか!?;; 正しいコードを書けば直ります。 テキストをよく読んで直せば直ります。 友達に聞きましょう。 etc. 年寄りは実務じゃ使わないから気づかなかった。 >scanf("&d", &seisu); "%d"だね。  &dじゃ入力した数値はseisuに入らない。 ※学校ではね実務で使えないものでも基本だから教えるの。 scanfは予定外のものが入力されると面倒だから使わない。 使わないから忘れてる。右と左の書き順自信を持っていえる? 学生は学生同士で教えあったほうがいいと思うよ。 あまりいじめてもかわいそうだからもうひとつだけヒント。 10個数えるには別の変数を使いましょう。

全文を見る
すると、全ての回答が全文表示されます。
  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.5

#4です 補足ね > seisu = 1 は、for文の初期化だけで・・・実際 > gokei=seisu+gokei; を通過する「seisu」は、 > seisu = 4 > seisu = 7 > seisu = 10 だけ、 あと、他の回答者が言われてるif文の話は、「=」が代入、「==」等号演算子と、違うものと言う解説

全文を見る
すると、全ての回答が全文表示されます。
  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.4

> for(seisu=1; seisu<=10;) > { > seisu=seisu+3; > gokei=seisu+gokei; > printf("合計=%d\n",gokei); > } だと、変じゃない? seisu = 1 seisu = 4 seisu = 7 seisu = 10 ここで、for文を抜ける

全文を見る
すると、全ての回答が全文表示されます。
  • stingy
  • ベストアンサー率37% (144/379)
回答No.3

この2行はあきらかにおかしいですね。 >if(handan=0) >for(seisu=1; seisu<=10;) VB経験者かしら? あと合計を何回表示する気なの? エラーになるとはどういうことでしょう? ・コンパイルできない ・実行時にエラーメッセージが出る ・実行時にいつも「できません」とでる ・実行時にいつまでも終わらない(はないな) ・実行時に表示される合計がおかしい(いつも同じ) etc. >教えてください! 何を?

shuji0819
質問者

お礼

if(handan=0) for(seisu=1; seisu<=10;) この条件式がおかしいみたいで、正しい条件式がわかりません; 合計は1回表示です エラーになるのは 実行時にエラーメッセージがでる 実行時にいつも「できません」とでる 実行時に表示される合計がおかしい しか私は今のところ判断できません; どうのようにすれば直りますか!?;;

全文を見る
すると、全ての回答が全文表示されます。
  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.2

うんNo1と同じく if(handan=0) の条件がおかしいと思う。

shuji0819
質問者

お礼

ありがとうございます! どのうような条件にすればいいのでしょうか;;

全文を見る
すると、全ての回答が全文表示されます。
  • yamasu--
  • ベストアンサー率33% (1/3)
回答No.1

いつも 「できません」と表示されるんですよね? ということは、 if(handan=0) の条件がおかしいんですよね。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Cのプログラミングを勉強中です。

    Cのプログラミングを勉強中です。 Aの値のBに対する割合を表示すしたいのですが、以下のように記述してもうまくいきません。 どこを直したらよいか教えていただけますか。 #include <stdio.h> int main(void) { int n1 , n2 ; printf("二つの整数を入力してください。\n"); printf("整数A:"); scanf("%d", &n1); printf("整数B:"); scanf("%d", &n2); printf("Aの値はBの%d%%です。\n" , n1 / n2 * 100 ); return(0); }

  • わかりません・・・。

    100個以下の整数を読み込んで、読み込んだ整数の一覧,それらのうちの最大値と二番目に大きい値とを表示するプログラムをつくりたいのですが、わかりません。 教えてください!! 実行例 整数は何個ですか:5 1 個目:65 2 個目:30 3 個目:98 4 個目:10 5 個目:54 入力された整数は 5 個で, 65 30 98 10 54 です. 最大値は 98 です. 二番目に大きい値は 65 です. ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー #include<stdio.h> #define number 100 int main (void) { int i; int seisu[number]; int max; puts("整数を入力してください。"); for(i=0, i<number, i++){ printf("%2d番",i+1); scanf("%d",&seisu[i]); } max=seisu[0] for(i=1, i<number, i++){ if (seisu[i]>max) max=seisu[i]; } printf("最高点:%d\n",max); return(0); } までしかわかりません。 2番目に大きい値と‘整数は何個ですか: ‘と‘入力された整数は 個で です。‘の部分はどうすればいいのでしょうか??

  • ヒントをください!

    ある課題があるんですが、 「ユーザに好きな整数を10個入力させ、その最小値と最大値を出力するプログラムを書いてください。if文を使ってください。」 このプログラムを作る際のヒントをください。ぜんぜんわからないので。。。 答えは作ってから見たいので。。。 よろしくおねがいします。 10個数字を入力させるプログラムは作りました。 #include <stdio.h> int main(void){ int c,e,r,u,t,v,d,a,p,n; printf("好きな整数を10個入力してください。\n"); printf("整数を入力:"); scanf("%d",&c); printf("整数を入力:"); scanf("%d",&e); printf("整数を入力:"); scanf("%d",&r); printf("整数を入力:"); scanf("%d",&u); printf("整数を入力:"); scanf("%d",&t); printf("整数を入力:"); scanf("%d",&v); printf("整数を入力:"); scanf("%d",&d); printf("整数を入力:"); scanf("%d",&a); printf("整数を入力:"); scanf("%d",&p); printf("整数を入力:"); scanf("%d",&n); return 0; } このようになりました。

  • 4の倍数を論理演算で表す。。

    /*Prog32.cキーボードから整数型変数aへデータを入力し、aの値が4の倍数のときは“4の倍数です”と表示し、そうでないときは、“4の倍数ではありません”と表示する。ただし、整数データのビット数はわからないものとし、計算にはビットごとの論理演算のみを用いる。*/ #include <stdio.h> int main(void) { int a; printf("整数を入力して下さい! "); scanf("%d", &a); (a % 4 ) ? printf("4の倍数ではありません。\n", a) :printf("4の倍数です。\n", a); return(0); } 4の倍数を論理演算で表す方法がわかりません。。 自分では上記のように算術を使うやりかたしかわかりませんでした。 よろしくお願いします!

  • C言語 %表示

    二つの整数値を読み込んで、前者が後者の何%かを表示するプログラムを作成したいです。 #include<stdio.h> int main(void){ int no1,no2; printf("整数を入力してください。\n"); printf("整数A:"); scanf("%d",&no1); printf("整数B:"); scanf("%d",&no2); printf("Aの値はBの値の%f%%です。\n",(double)(no1/no2)); } Aの値はBの値の0.0000%です。となってしまいます。 上記のプログラムの訂正をお願いします。

  • コンパイルエラー

    Borlnd C++ compilerでコンパイルしたのですが、どうしてもエラーがでてしまいます。エラーは、不正な文字’’(0×8140)(関数 main) エラーE2206 文字' ' (0×8140)(関数 main) エラーE2206と二つ同じエラーがあると表示されます。本当に分からないので力を貸したください。お願いします。 /*読み込んだ二つの整数値の大きい方の値を求めて表示(条件演算子)*/ #include <stdio.h> int main(void) { int n1, n2, max; puts("二つの整数を入力してください。");   printf("整数1 : "); scanf("%d", &n1); printf("整数2 : "); scanf("%d", &n2); max = (n1 > n2) ? n1 : n2; printf("大きい方の値は%dです。\n", max); return 0;

  • C言語プログラミング

    台形の面積を求めるプログラムを作りたいのですが、最後のmensekiの出力の仕方がわかりません。printf以降のプログラムを教えてください。 #include<stdio.h> #include<conio.h> void main() { int number1,number2,number3,menseki; printf("上底を入力してください:"); scanf("%d",&number1); printf("下底を入力してください:"); scanf("%d",&number2); printf("高さを入力してください:"); scanf("%d",&number3); menseki=(number1+number2)*number3/2; printf( ここがわかりません getch(); }

  • C言語でscanf()が先に実行されるのはなぜですか?

    C言語でscanf()が先に実行されるのはなぜですか? #include <stdio.h> int main(void){ int intNum; printf("整数を入力してください:\n"); scanf("%d", &intNum); printf("入力値は:%d\n",intNum); return(0); }

  • プログラミングで二番目に大きい数を表示する

    指定された個数(100個以下)だけ整数を読み込んで,読み込んだ整数の一覧,それらのうちの最大値と二番目に大きい値とを表示するプログラムを作成。最大となる値が複数入力された場合も正しく処理する。 このプログラムで入力した数字が全部同じ時、二番目に大きい値はありません。と表示したいのですが、どのようにしたらいいのかわかりません。教えてください。あとこのプログラムで最大値と二番目に大きい値出せたのですが、念のため問題ないか確認お願いします。 #include <stdio.h> #define NUMBER 100 /*整数の個数の上限*/ int main(void) { int i; int num; int kazu[NUMBER]; int max; int sec; printf("整数は何個ですか:"); scanf("%d", &num); puts("整数を入力してください。"); for(i = 0; i<num; i++){ printf("%3d個目:",i+1); scanf("%d", &kazu[i]); } printf("入力された整数は%d個で、\n",num); for(i=0;i<num;i++) printf("%d ",kazu[i]); printf("です。\n"); sec = max = kazu[0]; for(i=1; i<num; i++){ if(kazu[i]>max) max=kazu[i]; } for(i=0;i<num;i++){ if(kazu[i]>max){ sec=max; max=kazu[i]; }else if((max>kazu[i]) && (kazu[i]>sec)) sec=kazu[i]; } printf("最大値は%dです。 \n",max); printf("二番目に大きい値は%dです。\n", sec); return(0); }

  • C言語の初心者です。

    ポインタについて教えてください。 #include <stdio.h> int main() { int *p,a[2],i=0; p=a; scanf("%d",p); printf("%d\n",*p); i++; scanf("%d",p+i); printf("%d\n",*(p+i)); return 0; } これは整数を入力して出力といった簡単なプログラムなのですが、こういうポインタの使いかたって普通はしないでしょうか・・?。ポインタは使わずにこういう場合は2次元配列とかで出すのが普通なのでしょうか? また、下のプログラムなのですが、上記のプログラムをただ単にキャラ型で試しただけなのですが、どうして実行時エラーがおこってしまうのでしょうか? printfのところの*nameの、*を抜くと実行時エラーはおこりません。しかし、上記の整数では*はつけたままでも エラーしません。 整数とキャラ型では何かちがうのでしょうか?? #include <stdio.h> int main() { char *name,a[10]; name=a; printf("入力---"); gets(name); printf("%s\n",*name); return 0; } 初心者特有の質問をしてしまって申しわけございません。でも、ずっと悩んでて、すこしずつでもポインタの本当の使いかたを知りたいとおもいまして、初期段階ではありますがどうしても解らなかったので質問させていただきました。 そういうものだから!以外でご説明いただける方がいらっしゃいましたら宜しくお願いいたします。