• ベストアンサー

以下のプログラムについて教えてください

itohhの回答

  • itohh
  • ベストアンサー率45% (210/459)
回答No.2

こんにちは。itohhといいます。 >for(i=0; i<6;i++) >{ cout<<i+1<<"番:"; >cin>>tensu[i]; >if(tensu[i]<60) ここのiについては、おわかりですか? > rakudai[ninzu]=i; だけが、わからないというのもヘンですよ! 例を出して解説すると。 rakudaiというタンスが有ったとします。 タンスの抽斗は6個です。 iというカードを見てカードに書かれている数字が60未満だったら、 ninzuというカウンタ(手のひらの中に入れてカチカチすると数字があがる器械) の数字と同じ番号の抽斗にiというカードをしまいます。 そして、ninzuというカウンタをカウントアップ(カチカチとする)します。 ちょっと下手くそな、こんな説明で解りますかねぇ!!

yabuchanchan
質問者

お礼

お返事ありがとうございます。rakudai[ninzu]=1の部分なんですが、rakudaiという配列の数は、ninzuの数に依存するということなんですよね?つまり、最初は0なんですよね?でも、まだいまいち分からないのは、=iの部分なんです。iというカードをみるっていうところがいまいち分からないんですが・・・・・。

関連するQ&A

  • 点数の最高得点を知るプログラム

    #include<iostream> using namespace std;  int main() {  int i;  int box[5]; cout << "テストの点数を入力してください。\n"; for (int i = 0; i < 5; i++) { cin >> box[i]; } return 0; } for文で 点数を入力まで行ったのですが、 関数で配列を使って入力した最大値を調べるプログラムの練習問題なんですが、 何回もエラー出てしまいよく解っていません。 関数からポインタまで配列でどうつかうかがよく解ってないんだと思います。 良かったら教えてください、お願いします。

  • 配列受け渡し

    要素数nであるint型配列xから値がkである要素の添え字を返却する関数(ただし、値がkである要素が存在しなければ-1を返却するものとし、そのような要素が複数存在する場合は、先頭側の最も小さい添え字を返却する)を作成しています。 #include<iostream.h> #include<iomanip.h> int search(int x[],int n,int k) { int i,j; int result=-1; for(i=0;i<n;i++){ if(x[i]==k){ result=i; return(result); } else return(-1); } } int main(void) { const int ninzu = 5; int height[ninzu]; cout << ninzu << "要素:\n"; int i; for (i = 0; i < ninzu; i++) { cout << setw(2) << i+1 << "番目:"; cin >> height[i]; } cout << "検索要素は?:"; int target; cin >> target; int result=search(height, ninzu, target); if(result==-1) cout<<"ないよ"<<endl; else cout<<result+1<<"番目が"<<target<<endl; return (0); } このようにしたのですが、うまくいきません。また、複数の要素が発生したときの返却の仕方がわかりません。 どなたかアドバイス等よろしくお願いします。

  • 5つの要素を持つ配列から最高点を出力する

    1,5つの要素を持つ配列を受け取り、その最大値を返すint main(int x[])関数を定義してください。max()関数を使い、キーボードから学生の数とテストの点数を入力させ、最高点を出力うするコードを記述してください。 テストの点数を入力してください。 50 49 35 68 75 最高点は75点です、 みたいな感じの例題を作るまとめの練習ですが、ちょっと頭がこんがらがってしまいました。 とりあえず私が、途中まで記述したソースです。 #include<iostream> using namespace std; int max(int x[]); int main() { int tensu[5]; for (int i = 0; 0 < 5; i++) { cout << "テストの点数を入力してください。\n"; cin >> tensu[i]; } return 0; } int max(int x[]) { } 関数を使ってそれでif判定だとは思うのですが、関数を使ってifを使う方法が解りません。 ご教示よろしくお願いします。

  • 配列のプログラムですが

    #include <iostream> using namespace std; int main() { int a[100],b=-9999; int i=0,j; do { cout << "整数値を入力してください\n"; cin >> a[i]; b += a[i]; i++; }while( a[i-1] != 9999); cout << b << '\n'; for(j=0;j<i-1;j=j+1) cout << a[j] * 3 << '\n'; return 0; } このプログラムってどんな計算をしてるんですか?誰か分かる人いますか 整数値を入れてくださいって出るだけなんですが

  • C++での、素数の表を作成するプログラムについての質問です。

    C++での、素数の表を作成するプログラムについての質問です。 配列を使用して、2~71までの素数を表に埋め込みたいのです。 プログラム本体はここまで出来ているのですが、 素数を求める計算の方法がイマイチわかりません。 #include<iostream> #include <iomanip> using namespace std; #define N 20 int main() { int arry[N]; /********************************* ここでforを用いた反復で計算を行う **********************************/ /********************* 配列変数の内容を出力 *********************/ for(int i=0;i<N;i++) cout << "+--" ; cout << "+\n" ; for(int i = 0; i < N; i++ ) cout << "|" << setw(2) << arry[i] ; cout << "|\n" ; for(int i = 0; i < N; i++ ) cout << "+--" ; cout << "+\n" ; return 0; } for文を使用した反復構造でarry[N]に2~71までの数字をいれていきたいです。 お願いします。 なお、 int arry[N]={2,3,5,7…} や arry[0]=2; arry[1]=3; arry[2]=5; …のように入力してはいけないのです。

  • C++の配列についてなんですが

    #include <iostream> using namespace std; int main() { int i,goukei=0; int kokugo[5]; float heikin; for(i=0;i<5;i++) { cout << "出席番号" << i+1 << "番の国語の成績を入力してください\n"; cin >> kokugo[i]; goukei = goukei + kokugo[i]; } heikin = (float)goukei/5.0; cout << "平均点は" << heikin << "点です\n"; for(i=0;i<5;i++) { cout << "出席番号" << i+1 << "番の国語の成績は" << kokugo[i]; cout << "点で、平均との差は" << heikin-(float)kokugo[i] << "です\n"; } return 0; } これを基に 数学の点数も入力する 数学の平均も出力する 国語と数学の総合的な平均点も出力する ようにするにはどうすればいいんですか?

  • C++で10進数→2進数に

    C++で10進数を2進数に変換するプログラムを 順番通りに表示できるようにする っていうのを配列を使って作るんですが 下はあまり関係ないですが、こんな感じのが参考になるかなと思ったんですが、どうすればいいんですか #include <iostream> using namespace std; int main() { int i,goukei=0; int kokugo[5]; float heikin; for(i=0;i<5;i++) { cout << "出席番号" << i+1 << "番の国語の成績を入力してください\n"; cin >> kokugo[i]; goukei = goukei + kokugo[i]; } heikin = (float)goukei/5.0; cout << "平均点は" << heikin << "点です\n"; for(i=0;i<5;i++) { cout << "出席番号" << i+1 << "番の国語の成績は" << kokugo[i]; cout << "点で、平均との差は" << heikin-(float)kokugo[i] << "です\n"; } return 0; }

  • ややこしいコード

    #include<iostream> using namespace std; int main() { const int num = 5; int test[num]; cout << num << "人の点数を入力して下さい。\n"; for (int i = 0; i < num; i++) { cin >> test[i]; } for (int s= 0; s < num - 1; s++) { for (int t = s + 1; t < num; t++) { if (test[t] > test[s]) { int tmp = test[t]; test[t] = test[s]; test[s] = tmp; } } } for (int j = 0; j < num; j++) { cout << j + 1 << "番目の人の点数は" << test[j] << "です。\n"; } return 0; } 配列を並べ替える(ソート)する練習コードなんですが、 ちょっとややこしいので解りやすく教えて欲しいです。 因みに点数は、 22,80,57,60,50の順でお願いします。

  • 数の大きさ

    C++初心者です。以下の様なプログラムで、合計を求めたいのですが、あまり桁数の大きい数だと、正確な値がでません。(20桁とか・・・)これは一体どういうことが考えられますか?//配列の全要素の合計を求める #include<iostream.h> int main(void) { int i; int a[5]={0}.; cout<<"5個の整数値を入力しましょう。 \n"; for(i=0; i<5; i++) { cout<<"No."<<i+1<<": "; cin>>a[i]; } int sum=0; for(i=0; i<5; i++) sum=sum+a[i]; cout<<"合計は"<<sum<<"です。\n"; return(0); }

  • プログラムの説明

    C++の初心者です。 ↓のプログラムの動作はさっぱりわかりませんが、それについての説明は具体的に教えていただきたいです。(できれば、詳しく) #include <iostream> #include <string> int getNinzu(int ARGC, char *ARGV[]) throw (char const *){ if(ARGC!=2){ throw "Needs only one argument."; } int ninzu=std::atoi(ARGV[1]); if(ninzu<=0){ throw "Value is too small."; } return ninzu; } #include <cstdlib> #include <ctime> int randfive(){ static bool firsttime=true; if(firsttime){ firsttime=false; std::srand(std::time(NULL)); } return static_cast<int>(static_cast<double>(std::rand())/RAND_MAX*(5+1)); } #include <iomanip> int main(int ARGC, char* ARGV[]){ std::string cmdname=ARGV[0]; int ninzu; try{ ninzu=getNinzu(ARGC,ARGV); std::cout << std::setfill('0'); for (int i = 1; i <= ninzu; ++i) { int score = 0; for (int k = 0; k < 20; ++k) score += randfive(); std::cout << "C" << std::setw(5) << i << " " << score << '\n'; } }catch(char const *str){ std::cerr << str << std::endl << "Usage: " << cmdname << " ninzu" << std::endl; return 1; } }