お願いします!!

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

お願いします!!

#1

投稿記事 by mh » 12年前

float 型配列のデータを {10.1, 20.2, 30.3, 40.4, 50.5} とし、ポインターを用いて、アドレスとデータを順に取り出すプログラムを教えたください。

beatle
記事: 1281
登録日時: 13年前
住所: 埼玉
連絡を取る:

Re: お願いします!!

#2

投稿記事 by beatle » 12年前

フォーラムルールはご覧になりましたか?
このフォーラムでは、課題の丸投げは禁止されています。
ということで、mhさんができるところまで頑張ってもらいたいと思います。

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

Re: お願いします!!

#3

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

こんな感じ?

コード:

#include <stdio.h>

int main(void)
{
    float array[5] = { 10.1, 20.2, 30.3, 40.4, 50.5 };
    float *p;
    int i;

    for (p = &array[0], i = 0; i < 5; p++, i++) {
        printf("%p:%f\n", p, *p);
    }
    return 0;
}

たかぎ
記事: 328
登録日時: 14年前
住所: 大阪
連絡を取る:

Re: お願いします!!

#4

投稿記事 by たかぎ » 12年前

float型なら、サフィックスのfが必要ですね。
そのうえで...

コード:

#include <iostream>

int main()
{
  for (float const& x :  {10.1f, 20.2f, 30.3f, 40.4f, 50.5f})
    std::cout << &x << ' ' << x << std::endl;
}
こんな感じでしょうか。

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

Re: お願いします!!

#5

投稿記事 by nil » 12年前

>たかぎさん
c++11の機能フル活用ですね!!

コード:

import std.stdio;
void main(){
    float[] a = [ 10.1f,20.2f,30.3f,40.4f,50.5f ];
    foreach( float x; a )
        writeln( x );
}

かずま

Re: お願いします!!

#6

投稿記事 by かずま » 12年前

涼雅 さんが書きました:

コード:

import std.stdio;
void main(){
    float[] a = [ 10.1f,20.2f,30.3f,40.4f,50.5f ];
    foreach( float x; a )
        writeln( x );
}
D はよく知らないんですが、これでアドレスが表示されるのでしょうか?

C++ なら、

コード:

#include <iostream>
#include <algorithm>

void p(float& x) { std::cout << &x << " " << x << std::endl; }

int main() {
    float a[] = { 10.1, 20.2, 30.3, 40.4, 50.5 };
    std::for_each(a, a + 5, p);
}
p を関数オブジェクトにしたほうが、生成されるコードが短くなるかもしれません。

閉鎖

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