2011-12-09 14 views
19

printf() belgelerinin tamamını dikkatlice okuduğuma, ancak float(s) öğesinin 10 öğeli dizisinin öğelerini yazdırmanın herhangi bir yolunu bulamadığımı düşünüyorum.printf() öğesinin düzgün bir şekilde yazdırılmasını sağlamanın bir yolu var mı (yüzer, demek)?

Örneğin, ben

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

Sonra çizgisinde bir şey yazdırmak olacak tek bir deyimi gibi

printf("what_do_I_put_here\n", foo); 

olmasını istiyorum varsa:

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

Bunu vanilya C'de yapmak için bir yolu var mı?

+5

I '# define printarr (fmt dat, len) \t için (; i len DipSwitch

cevap

23

Eğer dizinin öğeleri aracılığıyla snprintf yığılmış ve daha sonra

printf("%s\n",function_that_makes_pretty_output(foo)) 
ile yazdırmak döndürür

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

veya oluşturma işlevini yinelemek gerekiyor

4

Sen dizi ve printf() her bir unsur ile döngü vardır:

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

printf("\n"); 
2

ben printf sizin için diziyi yazdırmak için bir yolu yoktur sanmıyorum. "printf" işlevinin dizinin ne kadar uzun olduğu konusunda bir fikri yoktur.

+2

biçiminde belirtilebilir. Ama böyle bir belirtecin var olduğunu sanmıyorum. – cnicutar

1

Bir döngü için gitmek gerekir:

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

Dilde "ekrana bütün bir diziyi yazdır" yazan tek bir deyim yok. Dizideki her öğe ekrana ayrı ayrı yazdırılmalıdır.

Ama merak etmeyin, döngüler sizi orada kurtarmak için !, Ben senin soru bir yol olup olmadığını bilmek sadece sanırım ve göremediğim gerek yok SO üzerinde 5k temsilcileri ile bir kişi herhalde vardır döngülerin nasıl uygulandığını bilmek için bir kod snippet'i!

+17

Belki de değil, ama sorular 0 reps'li insanlar için bile herkes için geçerli olacak;) –

-4

sen dize olarak yazdırabilirsiniz:

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

C yönelimli programlama (OOP) dili nesne değildir. Yani OOP'ta özellikleri kullanamazsınız. Örneğin. C.'de .length özelliği yok. Göreviniz için döngüleri kullanmanız gerekiyor.

-1

Dürüst Olmak İçin Her şey yolundadır, ancak birisi n zaman numaralarını kullanırsa ve bunları kullanıma sokarsa daha verimli olur, ya da daha iyi bir seçenek olur. Önceden tanımlanmış dizi değişkeni, kullanıcının sonucu tanımlamasını ve göstermesini sağlayın. Printf (fmt dat [i]) 've bu gibi ..

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; 
} 
İlgili konular