• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語について質問なんですが((。繰り返しを指示するプログラムがどうも)

C言語で繰り返しを指示するプログラムがうまくいかない

このQ&Aのポイント
  • C言語で繰り返しを指示するプログラムがうまくいかない。テキストボックス1に入力した数値をテキストボックス2に入力した回数分掛けてテキストボックス3に出力するプログラムを作成したが、うまくいかない。
  • forループで繰り返しの式を書いたが、正しいかどうかわからず困っている。他にも2~3種類の方法があるが、どれが正しいのかわからない。
  • プログラムの処理の部分では変数aにテキストボックス1の数値、変数bにテキストボックス2の数値を代入し、変数cに1を代入してから、b回繰り返しながらcにaを掛ける処理を行っている。

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

  • ベストアンサー
  • hisappy
  • ベストアンサー率46% (184/392)
回答No.2

単純に質問文の通りならこんな感じでしょうか。 c = 1; for( i = 1; i <= b; i ++) {   c = c * a; } for文が出力処理の後ろにあるのも妙なものですし、 プログラミングの世界での話しまで持ち出してみるならば 「上手くいかない」と判定するに足る情報が提示されていなかったりもします。 もっと言うなら、変数宣言がint型なので 入力条件と実行環境によってはオーバーフローとなる危険性もあったり。 この手の定番モノの無限ループやループ回数異常はなさそうですが…

その他の回答 (4)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.5

プログラムを見ると private void ~とか、Cには無い書きかたしてるので、正確にはC#で、テキストボックスというのも.NetのフォームのTextBoxのことではないかと。 よって、int配列がどうのというのは関係ないのでは。 質問者様へ。 CとC#(ついでにC++,Java等)は構文が似ていますが、いろんなところに違いがあって、まったく別の言語です。 混同しないようにしましょう。

回答No.4

#3です。 for() の練習にこだわるならば #2さんが答えになります。 #include <stdio.h> int my_pow(int, int); int main(void) { int textbox[4]; char c; do { printf("textbox1? "); scanf("%d", &textbox[1]); printf("textbox2? "); scanf("%d", &textbox[2]); textbox[3]=my_pow(textbox[1], textbox[2]); printf("textbox3= %d\n", textbox[3]); printf("\tContinue? "); scanf("%*c%c", &c); } while (c=='\n'); return 0; } int my_pow(int x, int y) { int i,t=1; for(i=0; i<y; i++) t*=x; return t; }

回答No.3

--- 質問 --- テキストボックス1に入力した数値をテキストボックス2に入力した回数分掛けた値をもとめテクストボックス3に出力するものです。 例えばテクストボックス1に「13」と入力し、テクストボックス2に「2」と入力したら169とテクストボックス3に出力したい。 C++ではなく、C言語についての質問ならば、べき乗ですからint型変数textbox[] について cast 演算子(double)を用いてこんな風になろうかと思います。 #include <stdio.h> #include <math.h> int main(void) { int textbox[4]; char c; do { printf("textbox1? "); scanf("%d", &textbox[1]); printf("textbox2? "); scanf("%d", &textbox[2]); textbox[3]=pow((double)textbox[1],(double)textbox[2]); printf("textbox3= %d\n", textbox[3]); printf("\tContinue? "); scanf("%*c%c", &c); } while (c=='\n'); return 0; } -----結果----- textbox1? 13 textbox2? 2 textbox3= 169 Continue? n

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

どんな風に書いたのか、それでどんな風になったのか、がわからないので、正確に答えようがないですが。 > //出力 > //求めた答えをtextbox4に出力 > textBox3.Text = c.ToString(); > > for(i=0;i<b;i++) > { > > } この順番だと、textBox3は計算前のcの値(1)になるだけで、forで計算した結果にならないのではないでしょうか。

関連するQ&A

専門家に質問してみよう