ページ 1 / 1
お願いします!!
Posted: 2012年11月20日(火) 11:57
by mh
float 型配列のデータを {10.1, 20.2, 30.3, 40.4, 50.5} とし、ポインターを用いて、アドレスとデータを順に取り出すプログラムを教えたください。
Re: お願いします!!
Posted: 2012年11月20日(火) 12:03
by beatle
フォーラムルールはご覧になりましたか?
このフォーラムでは、課題の丸投げは禁止されています。
ということで、mhさんができるところまで頑張ってもらいたいと思います。
Re: お願いします!!
Posted: 2012年11月20日(火) 13:44
by 初級者
こんな感じ?
コード:
#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;
}
Re: お願いします!!
Posted: 2012年11月20日(火) 15:26
by たかぎ
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;
}
こんな感じでしょうか。
Re: お願いします!!
Posted: 2012年11月20日(火) 18:14
by nil
>たかぎさん
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: お願いします!!
Posted: 2012年11月21日(水) 10:25
by かずま
涼雅 さんが書きました:コード:
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 を関数オブジェクトにしたほうが、生成されるコードが短くなるかもしれません。