• ベストアンサー

【プログラム】2の倍数で表示非表示

(1)(2)(3)(4)(5)(6)・・・・ と数字があり これを100回繰り返すとします。 さらにそれらを、1と2、3と4というように ペアを作って行きます。 [(1)(2)] [(3)(4)]・・・・ さらにその各数字から返り値が受けれるとして ペアのどちらかがFALSEの場合は排除します。 [(1)TRUE(2)TRUE)]  [(3)FALSE(4)TRUE] [(5)TRUE(6)TRUE] ↓ [(1)TRUE(2)TRUE)]  [(5)TRUE(6)TRUE)]  これをC言語系のプログラム的に書くとしたら どうなるでしょうか。

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

  • ベストアンサー
  • KEIS050162
  • ベストアンサー率47% (890/1879)
回答No.4

タイトルが2の倍数となっていたので、100個の数値(50ペア)の双方が偶数のケースを拾い出す形で記述してみました。 取りあえず 数値を入力してTRUE, FALSEを返す関数 funcA() は、2の倍数ならTRUEという形にしてあります。 参考にしてみてください。 #include <stdio.h> typedef enum _boolean { FALSE, TRUE } boolean; #define RW 50 #define CL 2 boolean funcA( int a ) { if ( (a % 2) == 0 ) return( TRUE); else return( FALSE ); } void main( void ) { int i,j,n; int nm; int data[RW][CL]; int result[RW][CL]; for ( i = 0; i < RW ; i++ ) { for( j = 0; j < CL ; j++ ) { printf( "input data[%#d][%d] =?", i,j ); scanf( "%d", &data[i][j]); } } n = 0; for ( i = 0; i < RW; i++ ) { if ( funcA( data[i][0] ) && funcA( data[i][1] ) ) { result[ n ][0] = data[ i ][0]; result[ n ][1] = data[ i ][1]; n++; } } printf( "Number = %d\n",n ); for ( i=0; i < n ; i++ ) { printf( "result[ %#d ] = %d,%d\n", i,result[i][0],result[i][1] ); } }

yuzuru0024
質問者

お礼

回答有難うございます! とても参考になります。

その他の回答 (3)

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

訂正 else { 1,2 を採用} → else { 1,2 を不採用} 以下、同様に。

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

if( (f(1) == TRUE) && (f(2)==TRUE)){ 1,2 を採用} else { 1,2 を採用} if( (f(3) == TRUE) && (f(4)==TRUE)){ 3,4 を採用} else { 3,4 を採用} if( (f(5) == TRUE) && (f(6)==TRUE)){ 5,6 を採用} else { 5,6 を採用} if( (f(7) == TRUE) && (f(8)==TRUE)){ 7,8 を採用} else { 7,8 を採用} if( (f(9) == TRUE) && (f(10)==TRUE)){ 9,10 を採用} else { 9,10 を採用} ...略... if( (f(99) == TRUE) && (f(100)==TRUE)){ 99,100 を採用} else { 99,100 を採用} データの保存方法、使用言語(C言語系、と言われても...)、使用ライブラリ と言ったものが不明では、 この程度までしか具体的には書けません。

yuzuru0024
質問者

お礼

回答有難うございます。 for文を使わないのもありですね。

回答No.1

C言語"系"ってなんですか? C++ならどってことなく書けますが。

yuzuru0024
質問者

お礼

回答有難うございます。 記述構文がC言語系のという意味です。

関連するQ&A

  • 3のつく数字と3の倍数のみを表示するプログラム

    C言語で3のつく数字と3の倍数のみ(1~150)を表示するプログラムを作りたいのですがどうすればいいのでしょうか?

  • C言語プログラム 作ってくれませんか?m(__)m

    C言語 プログラム 1~45の数字の中からランダムに15ペアの組み合わせと残りの数字を表示するようなプログラムをつくりたいのですが,どなたか作ってくれませんか? 以下のような表示例みたいなのが,嬉しいです。お願いします。 Ex. ./ random 6 -27 5 -22 4 -19 1 -21 15 -14 33 -40 17 -36 37 -28 13 -42 23 -41 34 -24 7 -35 38 -11 12 -8 26 -18 43 9 3 25 16 2 44 29 30 39 45 10 20 32 31

  • C#でパスワード認証プログラムを作っています

    C#言語でパスワード認証プログラムを作っています。 If文を使う場合、 if (password.Length < 8) valid = false; というように、8文字以下は駄目にするとかは出来るのですが、 そのパスワードの中に必ず大文字(Uppercase)、数字(Digit)が1つは入っていないといけないというものを作る場合 どのようにすれば良いでしょうか?

  • プログラム

    10進数の数字をキーボードから読み込み、 2進数の数字に変換するプログラムなんですけど、 C言語では2進数は取り扱えないみたいなんですけど、 どうすればこのプログラムを書くことが出来ますか。

  • excelのtrue/falseの表示とかについて

    エクセルで論理式の返り値としてtrue falseが返ってきますが、 true を 0 false  を 1 とする表示形式ってあるのでしょうか? if文を使えば出来るのは充分承知した上での質問です。 ついでの質問ですが、FALSEの入っているセルを + 計算すると普通の1として扱ってくれますが、 SUM で計算するとエラーになるのは、どういう理由かご存知の方教えてください。

  • 重複しない組み合わせのプログラム

    0から9のうち4つの数字を取り出すというC言語のプログラムをつくりたいのですが、ランダム関数を用いると重複してしまいます。どのようにしたらよいでしょうか?

  • 乱数表示のプログラム

     こんにちは。C言語初心者で現在会社で勉強しているものです。上司に課題を出されました。以下の通りです。 「1~100までの数字をランダムに出力するプログラムを作成しなさい。ただし実行するたびにその結果は異なるようにし、同じ数字は表示されないようにしなさい。」  time関数を使って実行する度に異なる結果が得られるところまではできたのですが、一度表示された数字を省くロジックがわかりません。質問検索で似たような質問をされていた方が何人かいて、それを参考にやってみたのですがどうもうまくいきません。できるだけCPUに負荷をかけないように、という条件もあります。  提出期限が迫っており困っています。どなたか教えてください。

  • パズルのプログラム

    例えば三ケタの123とし、大きい順に並べて321小さい順に並べて123とします.そして321-123=198となりまた大小で並べて981-198と計算していきます。そして何回かすると同じ数がずっと出てくるのですが、それを何回行うかを求めるプログラムを教えて欲しいです。なお三ケタの100~999までとし、使う言語をc言語としてください。

  • atanh(sin(rad))のプログラム

    はじめまして。 C言語で、y = tan(-1)(sinφ)を求めたいのですが、 どうすればよいでしょうか。 y = atanh(sin(Phi * 3.14159 / 180)); で良いのでしょうか。返り値がラジアンである必要がある と思いますが、ググるにも調べ方が分からず困っています。

  • プログラムを始めるなら

    C言語をある程度知っている人なら、プログラミングは大丈夫だと言われる理由って何でしょう? 別にC言語を元に全てのプログラムができたわけでもないし、 オブジェクト指向のプログラムとは毛色が違うし。 私自身C言語,javaなどのソースが読める程度しかできませんが、 プログラミングが出来るとはお世辞にも言えません。 何故このような事が言われているのでしょう? また、最初に学ぶべき言語としてはやはりC等の言語がいいのでしょうか? それともアセンブリ言語のような物の方がいいのでしょうか?

専門家に質問してみよう