要素数を数えるプログラミングを教えてください。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
yamamoto

要素数を数えるプログラミングを教えてください。

#1

投稿記事 by yamamoto » 7年前

多分皆さんには簡単な問題だと思われますが、よろしくお願いします。
自分にはさっぱりわからないもので…。

整数配列の要素に負の値が現れるまで要素数を数えるプログラムを作れ。
下のプログラムのように添え字の操作を使用してはいけない。ポインタを使う方式に改めよ。すなわち、data>0という操作を使わないプログラムに変更せよ。
#include<stdio.h>
main()
{
int data[]={3,8,2,5,9,-4,6,1,0,7};
int i=0;
while(data>0){
i++;
}
printf(“Num of elements before negative value = %d\n”,i);
}

という問題なのですが、よろしくお願いしますorz

アバター
h2so5
副管理人
記事: 2212
登録日時: 9年前
住所: 東京
連絡を取る:

Re: 要素数を数えるプログラミングを教えてください。

#2

投稿記事 by h2so5 » 7年前

問題文がおかしいと思います。
負の値が現れるまで、と書いてありますが条件式が data>0 だと 0 があったときも停止してしまいます。

yamamoto

Re: 要素数を数えるプログラミングを教えてください。

#3

投稿記事 by yamamoto » 7年前

すいません・・・。書き直します!!

整数配列の要素に負の値が現れるまで要素数を数えるプログラムを作れ。
下のプログラムのように添え字の操作を使用してはいけない。ポインタを使う方式に改めよ。すなわち、data>=0という操作を使わないプログラムに変更せよ。
#include<stdio.h>
main()
{
int data[]={3,8,2,5,9,-4,6,1,0,7};
int i=0;
while(data>=0){
i++;
}
printf(“Num of elements before negative value = %d\n”,i);
}

どうか、もう一度よろしくお願いしますorz

ホヅミ
記事: 110
登録日時: 9年前

Re: 要素数を数えるプログラミングを教えてください。

#4

投稿記事 by ホヅミ » 7年前

ポインタ(今回は*pとする)を宣言し、ポインタに先頭アドレスを入れてあげてください
参照する場合はポインタを変数iでずらして参照して行ってください。
まずは、これで解決できるかやってみましょう。

ISLe
記事: 2646
登録日時: 9年前
連絡を取る:

Re: 要素数を数えるプログラミングを教えてください。

#5

投稿記事 by ISLe » 7年前

新たにポインタ変数を宣言しなくても、ポインタ(参照演算子)を使う方式にはできますが。
問題の不備ですね。

nil
記事: 428
登録日時: 8年前

Re: 要素数を数えるプログラミングを教えてください。

#6

投稿記事 by nil » 7年前

コードタグを使ってくださいね。
さて、yamamotoさんのわからないのは問題のうちどこですか?
例として出されているプログラムは理解できていますか?

初級者
記事: 200
登録日時: 9年前

Re: 要素数を数えるプログラミングを教えてください。

#7

投稿記事 by 初級者 » 7年前

data と書くのと *(data + i) と書くのとは等価なので…

コード:

#include <stdio.h>

int main(void)
{
    int data[] = { 3, 8, 2, 5, 9, -4, 6, 1, 0, 7 };
    int i = 0;

    while (*(data + i) >= 0) {
        i++;
    }
    printf("Num of elements before negative value = %d\n", i);
    return 0;
}

閉鎖

“C言語何でも質問掲示板” へ戻る