2011-12-09 9 views
19

私はprintf()の文書全体を慎重に読んだことがあると思いますが、たとえば、float(s)の10要素配列の要素を印刷する方法が見つかりませんでした。printf()に配列(浮動小数点数)を正しく出力する方法はありますか?

例えば、私は

float[] foo = {1., 2., 3., ..., 10.}; 

は、その後、私はの線に沿って何かを印刷し、単一の文のような

printf("what_do_I_put_here\n", foo); 

したいのですが持っている場合:

1. 2. 3. .... 10. 

バニラCでこれを行う方法はありますか?

+5

私は'の#define printarr(FMT、DAT、LEN)\tについて(;;私がlen DipSwitch

答えて

23

あなたは、配列の要素

float foo[] = {1, 2, 3, 10}; 
int i; 
for (i=0;i < (sizeof (foo) /sizeof (foo[0]));i++) { 
    printf("%lf\n",foo[i]); 
} 

又は積層のsnprintfを返し、その後

printf("%s\n",function_that_makes_pretty_output(foo)) 
でそれを印刷する関数を作成スルー反復処理する必要があります
4

あなたがアレイとのprintf()の各要素をループする必要があります。

for(int i=0;i<10;++i) { 
    printf("%.2f ", foo[i]); 
} 

printf("\n"); 
2

私はprintfの中であなたのためのアレイを印刷する方法があるとは思いません。 "printf"関数はあなたの配列の長さを知らない。

+2

で指定することができます。しかし、私はそのような指定子が存在するとは思わない。 – cnicutar

1

あなたがループのために行く必要があります。

for (int i = 0; i < sizeof(foo)/sizeof(float); ++i) 
    printf("%f", foo[i]); 
printf("\n"); 
11

あります"配列全体を画面に印刷する"という言葉の中で、単一のステートメントはありません。配列内の各要素は、画面に個別に印刷する必要があります。

しかし、心配しないでください、ループがあなたをそこに保存すること!私はあなたの質問は方法があるかどうかを知るためだけだったと思いますし、私が見ている必要はありませんので、上5K担当者との人を想定していますループの実装方法を知るためのコードスニペット!

+17

多分彼はしませんが、0人の担当者の皆さんであっても、誰もが質問できるようになっています。 –

-4

あなたはそれを文字列として印刷することができます。

printf("%s\n", foo); 
1

Cは、指向プログラミング(OOP)言語をオブジェクトではありません。したがって、OOPでプロパティを使用することはできません。例えば。 Cには.lengthプロパティはありません。したがって、あなたのタスクにループを使用する必要があります。

-1

正直すべてです。誰かがn個のタイムナンバーを使用し、それらをput.soで表示すると、これは良いオプションになることが望ましい場合は、それは簡単です。配列変数をあらかじめ定義しておかないと、ユーザーは結果を定義して表示できません。 printf(FMT、DAT [i])と `と次のように..

int main() 
{ 
    int i,j,n,t; 
int arry[100]; 
    scanf("%d",&n); 
    for (i=0;i<n;i++) 
    { scanf("%d",&t); 
     arry[i]=t; 
    } 
for(j=0;j<n;j++) 
    printf("%d",arry[j]); 

return 0; 
} 
関連する問題