• 締切済み

複数のfor文

noname#48699の回答

noname#48699
noname#48699
回答No.7

No6です。全くもって失礼しました。 暇な年寄り得意の早とちりで・・、申し訳ない。 (「9つのfor文」なんて質問しないよなぁ、すまん) ★「1つの for文で・・」ということですね。  ↑この解釈も間違っている???、やっとヒラメいたんだが。  (下のプログラムの結果が、No1,2さんの結果と違うし、でも、質問本文と合致) 【想定】 ・9列(桁)のそろばんで、上8列が玉1つずつ、下1列は玉2つ(▲)。 ・下1列の繰り上がりで直近上位列の玉上げ(◆)、以降順次。 これをコーディングすると #include <stdio.h> #define MATSUBI (3) // (8) void main() {  int iHedVal = 0, iBtmVal, j;  for( j = 0; j < ( 0x0100 * MATSUBI ); j++ ){   iBtmVal = j % MATSUBI; // ▲   printf( "%3d %3d a", j, iHedVal );   printf( "[%d]", ( ( iHedVal & 0x0080 ) >> 7 ) );   printf( "[%d]", ( ( iHedVal & 0x0040 ) >> 6 ) );   printf( "[%d]", ( ( iHedVal & 0x0020 ) >> 5 ) );   printf( "[%d]", ( ( iHedVal & 0x0010 ) >> 4 ) );   printf( "[%d]", ( ( iHedVal & 0x0008 ) >> 3 ) );   printf( "[%d]", ( ( iHedVal & 0x0004 ) >> 2 ) );   printf( "[%d]", ( ( iHedVal & 0x0002 ) >> 1 ) );   printf( "[%d]", ( ( iHedVal & 0x0001 ) >> 0 ) ); // 統一表現   printf( "[%d]", iBtmVal );   printf( "\n" );   if( ( MATSUBI - 1 ) == ( j % MATSUBI ) ) iHedVal++; // ◆  } } 注:全角空白でインデントしています(エディタでタブに置換して下さい)。 解説するまでもないけど、上8桁の数字を★マスクして出力★してるだけです(【想定】より単純じゃん、とツッコミが入りそう)。

関連するQ&A

  • for文を使って。

    プログラミングを勉強している初心者ですが、以下の問題につまずいてしまいました。 「10000以下の任意の数を入力して、10000からその数を引くことのできる回数を調べるプログラムを作成せよ。」 for文とデクリメント演算子を使ってつくろうとしているのですが…。 詳しいアドバイスお願いします!!

  • for文を使ったプログラム

    プログラミング初心者です。 ある数字を入力すると、1からその数字までが表示されるプログラムをfor文を使って作りたいのですが、どうすればいいのでしょうか?

  • プログラミング for文

    プログラミング for文 プログラミングの問題です。 「自然数nを入力し、以下のようなパターンが出力されるようなプログラムをfor文を使って作成せよ。」 (例:n=3のとき) % ./a.out n: 3 * ** *** *__* **_** ****** *__*__* **_**_** ********* (例:n=4のとき) % ./a.out n: 4 * ** *** **** *___* **__** ***_*** ******** *___*___* **__**__** ***_***_*** ************ *___*___*___* **__**__**__** ***_***_***_*** **************** (_で空白を表しましたが、上手く見られないかもしれません…。小さい直角三角形が下に行くにつれ1個ずつ増え、全体的にみると大きい直角三角形が見えるイメージです。) つまり、n=3なら、 * ** *** を単位として、1~3行目にはこれが1つ、4~6行目にはこれが2つ、7~9行目にはこれが3つあります。 一般に、 * ** *** … ********(←n個) を単位とし、n^2-2~n^2行目にこれがn個あるようなパターンです。 私はまず、単位パターンをプログラムしました。 #include <stdio.h> main() { ___int n, i, j; ___printf("n: "); ___scanf("%d", &n); ___for (i=1; i<=n; i++) { ______for (j=1; j<=i; j++) { _________printf("*"); ______} ______printf("\n"); ___} } (_は空白です) しかし、単位パターンを横に2個、3個と並べるプログラムが分かりません。 さらにfor文を使い、3重、4重にするのですか?どなたか教えてください。

  • プログラムでfor文をつかうのですが…

    こんにちは。 最近コマンドプロンプトでプログラミングを教わりました。 ここで聞きたいことがあるのですが、 For文を使って以下のような結果が表示されるようにしたいのです。 @ @@ @@@ @@@@ @@@@@ なにぶん初心者中の初心者なので是非お力をお貸しいただければ幸いです。 簡単なプログラムでお願いしたいです。 よろしくお願いします。

  • java for文プログラムについて

    java for文プログラムについて javaのfor文のプログラムにて 2つの数値をキーボード入力し入力値を+入力値とやっていきたいプログラムを組みたいのですがどんなプログラミングを行えばいいのでしょうか。 例えば入力が15 もうひとつの入力が20だとすれば15+16+17+18+19+20=105という計算を行いたいです プログラミング環境はeclipseです 分かる方教えてください。

  • java for文、if文を使っての三角形

    例:1 23 456 78910 ・・・・・・のようにひょうじさせるプログラムを作成するのに、for文とIf文を使っての三角形を   作成したいのですが、If文の条件式が分からないのとどうしたら、上記のようなプログラムが   出来るのか教えてください。お願いします。 public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ // 行に表示させる個数を表現するための変数がないため今回、新たに変数を用意する。 int a = 1; //行の終わりを改行して1増やすための変数がないため今回、新たに変数を用意する。 int b = 1; // 1~100までの数字を用意する。 for (int i = 1; i <= 100; i++) { //変数iをSystem.out.printを使って変数iをコンソールの中に出力させる。 System.out.print(i); //System.out.println("")を使って改行する。 System.out.println(" "); //変数iに1増加して数字を順番にする。 i++; if(a <= i){ System.out.print(a);

  • エクセルVBAでのfor文

    エクセルVBAのfor文についての質問です A列のセルに抽出したタイトルが貼り付けられている状態で、そのA列のセルの名前で新規シートを作りたいのですが ・抽出される数が条件によって違うので、A列のセルの数が固定ではない ・1つの名前につき1つの新規シートの作成で、重複して作らない 重複してしまうとシート数が数百単位になってしまい、メモリ不足になると思うので重複は削除して作りたいのですが、この場合のfor文の宣言はどうなるのでしょうか? 抽出される数が条件に応じて変わるのでいまいち分かりません。 (今までfor文は3や5などの指定数での経験しかありません) どうかお助けください

  • for文の用途について

    for文を勉強して繰り返しということを学びました。 そこでふと疑問に思ったことがあります。 「・・・これってどういう場面に使うの?」ということです。 現時点では『1~10までの数字を足したらいくつになるのか?』など到底使えるレベルではないです。 (もちろん考え方の基礎になっていることは理解しています。) これから勉強していく上で、この繰り返しという作業がどういった場面で有効利用されていくのか教えてください。

  • 簡単なfor文

    #include <stdio.h> int main(void) { int n; int i; for(n=0 ;n<10;n++){ for(i=0; i<=n ;i++){ printf("*"); } printf("\n"); } return(0); } こういったプログラムを実行すると、以下のように表示されるのですがなんででしょうか? * ** *** 以下略 自分の考えですと、*は毎回一つしか表示されずに改行されると思うのですが・・・ * * * * 以下略 i個分の*を表示するなどという指示をプログラムはなされていないと思うのですがなぜなんでしょうか? 一つ目のfor文では10回ループが繰り返され改行 二つ目のfor文で*を永遠に表示 といった僕の解釈ではおかしいですよね。 当方C言語初心者で、周りに聞く人がいないため教えていただけると非常に助かりますm(__)m

  • 初心者です。for文、if文を使って10進数を2進数に変換したいです。

    入力された10進数の数値を2進数に変換する、プログラムを教えてください。 仕様がありまして、2進数を求めるには、入力された10進数の数値を、for文とif文を使用し商が0になるまで2で割り、2進数の値を求め、表示させなければいけません。 ご教授お願いいたします。