プロが教える店舗&オフィスのセキュリティ対策術

次の配列の要素で奇数であるものの個数を求めよ.
この問題がわからず大学で課題が提出できず、とても困っています
><;;
誰か助けて下さい。お願いします。

A 回答 (5件)

こんな感じでどうでしょうか?



// ここからソース ====================================
// OddCount.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//

#include "stdafx.h"
#include <stdlib.h>
#include <time.h>

// 配列の大きさを求めるマクロです
#define ARRAY_OF(a)(sizeof(a) / sizeof (a[0]))

// 奇数の数を戻します
static int CountOdd(const int Tbl[], int Count)
{
int c = 0;// カウンタ
for (int i = 0; i < Count; ++i)
{
// 奇数か否か判定します
// 単純に余りを求めて1か否かで判定してもよいですが
// 多少の効率化を考えてみました
if (Tbl[i] & 0x1)
{
// 最下位ビットが0ではない(つまり1)の場合です
// 奇数なのでカウントアップを行います
c++;
}
}
return c;
}

#define DATA_COUNT 10

int _tmain(int argc, _TCHAR* argv[])
{
// 乱数により配列にデータを作成します

int tbl[DATA_COUNT], n;

srand((unsigned int)time(NULL));
for (int i = 0; i < ARRAY_OF (tbl); ++i)
{
tbl[i] = rand();

printf("i, tbl[i] : %d, %d\n", i , tbl[i]);
}


// 奇数の数を求めます
n = CountOdd(tbl, ARRAY_OF (tbl));
printf("奇数の数 : %d[個]\n", n);

return 0;
}

// ここまで ソース

一応動作確認してあります
VC++ 2008 Pro
です。
C++で作ってあります。
(一応Cに配慮したつもりです。)
    • good
    • 0

 こんばんは。

C++で良ければ此れで出来ると思います。以下参考程度に。

#include<algorithm>
#include<boost/array.hpp>
#include<boost/lambda/lambda.hpp>

int main()
{
const boost::array<int, 10> a = {0,1,2,3,4,5,6,7,8,9};
int count = 0;
std::for_each(a.begin(), a.end(), (count += (boost::lambda::_1 & 0x1)));
std::cout << count << std::endl;
return 0;
}
    • good
    • 0

流れとしては以下のとおりになります。



(1) 整数値の個数を入力します。
(2) 入力された個数分の整数値を入力します。
(3) 奇数の個数をカウンタとして最初0の値にセットします。
(4) 入力された個数分繰り返して以下の処理を行います。
  ・入力された整数値が2で割り切れない時
     奇数と判定してカウンタを1増やす。
(5) 奇数の個数を画面出力します。
(6) プログラムを終了します。

プログラム例を以下に示すとこうなります。

#include <stdio.h>

int main(void)
{
  int val[100];
  int icnt,num,count;

  printf("個数:");
  scanf("%d",&num);
  for (icnt = 0; icnt < num; icnt++)
  {
    printf("数値 val[%3d] = ",icnt);
    scanf("%d",&val[icnt]);
  }
  count = 0;
  for (icnt = 0; icnt < num; icnt++)
  {
    if (val[icnt] % 2 != 0)
    {
      count++;
    }
  }
  printf("%3d 個中奇数は %d 個あります。\n", num, count);
  return 0;
}

これでどうでしょうか?
    • good
    • 0

・担当教授に教えてもらう


・わかっている友人に飯でもおごって教えてもらう。
・その単位をあきらめる。
・学部を変える
・大学をやめる
    • good
    • 1

>次の配列の要素で奇数であるものの個数を求めよ.


>この問題がわからず大学で課題が提出できず、とても困っています
>誰か助けて下さい。お願いします。

本当に助けて欲しいと思うなら「次の配列」とか言うのを掲載して下さい。

超能力者やエスパーでない限り「課題の全文」が判らないと、貴方を助ける事は出来ません。

「問題文を、1字1句、間違えずに、すべて書き写して、再質問」して下さい。1文、1文字たりとも省略してはいけません。何か1文字でも欠ければ、回答出来なくなりますから。

もし「どこまで掲載すれば良いか判らない」と言う場合は、残念ですが「小学校からやり直しをする」か「常識を身に付けてから、質問し直す」か、どちらか選んで下さい。

これも「ゆとり教育」の弊害か…。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!