2010-08-26 7 views
2

Comment imprimer les résultats d'une boucle?comment imprimer un résultat de boucle?

Par exemple si j'ai quelque chose de simple comme ceci:

k[0]=2; 
k[1]=3; 
k[2]=4; 

for (i = 0 ; i <= 2 ; i++) 
{ 
    x[i]=5*k[i]; 
} 

Comment puis-je imprimer les résultats pour x [0], x [1], x [2] sans avoir à continuer à répéter la tableau dans printf? Comme dans

printf("%d %d %d\n",x[0],x[1],x[2]); 

Je ne veux pas vraiment faire le printf ci-dessus parce que pour mon problème j'ai actally un tableau de 100 valeurs, je ne peux pas être répéter les x [0], x [1] ... pour une cent fois.

Espérons que quelqu'un peut aider grâce à des charges!

+0

Utilisez une boucle, bien sûr :) –

Répondre

8

Peut-être ceci:

for (j = 0; j < 100; j++) { 
    printf ("%d ",x[j]); 
} 
printf ("\n"); 
3

Vous pouvez mettre un printf dans une boucle. Si vous ne mettez pas un "\ n" dans le printf, le printf suivant sera sur la même ligne. Ensuite, lorsque vous avez terminé avec la boucle, printf juste un retour à la ligne.

Il n'existe pas de spécificateur de type printf pour un tableau, vous devez parcourir les éléments du tableau et les imprimer un par un.

0

Vous pouvez penser à faire de cette façon:

k[0]=2; 
k[1]=3; 
k[2]=4; 

for (i = 0 ; i <= 2 ; i++) 
{ 
    x[i]=5*k[i]; 
    printf("%d",x[i]); 
} 
printf("\n"); 
+0

Le résultat ne sera pas le même, tous les numéros étant sur des lignes différentes – Grimmy

+0

Juste mis à jour ma réponse pour prendre soin de votre préoccupation. – Kangkan

2

Pourquoi ne pouvez-vous les imprimer comme vous allez autour de la boucle? En plus de cela, vous pourriez avoir une autre boucle sous laquelle strcats les résultats ensemble dans une seule chaîne pour la sortie.

+0

désolé mon mauvais, en fait mon vrai problème tourne autour d'un tableau de valeurs qui sont définies par des pointeurs><, ce qui rend les choses compliquées je pense .. – esther

+0

Vous pouvez imprimer des valeurs dans les pointeurs en préfixant la valeur avec un *. c'est-à-dire "int a = 5; int * b = & a; printf ("% d ", * b);" va imprimer 5. Si votre tableau était de pointeurs, alors de manière similaire ("int * data [10]; data [3] = malloc (taille de (int)); * data [3] = 123; printf ("% d ", * data [3]); " – locka

+0

heya locka, merci ... je peux sentir une solution venir..urm, pouvez-vous s'il vous plaît expliquer un peu plus sur la partie malloc? merci! – esther

2

Vous devez placer la printf dans la boucle:

k[0]=2; 
k[1]=3; 
k[2]=4; 

for (i = 0 ; i <= 2 ; i++) 
{ 
    x[i]=5*k[i]; 
    printf("%d ", x[i]); 
} 

printf("\n"); 
-3
#include <stdio.h> 
#define FOR_PRINT(index, array, size, format) \ 
    { \ 
     for(index = 0; index < size; ++index){ \ 
      printf(format, array[index]); \ 
     } \ 
     printf("\n"); 
    } \ 

int main(){ 
    int array [] = {1,2,3}; 
    int i; 
    FOR_PRINT(i, array, 3, "%d "); 
    return (0); 
} 

Vous pouvez toujours utiliser un MACRO pour cela.

Mon exemple précédent n'est pas l'exemple le plus sûr ou le plus lisible d'une macro, mais peut constituer un point de départ pour vous.

+1

Hmm, quelle est la raison de faire cela avec une macro? –

+2

-1: Toujours éviter les macros autant que possible. Ce cas ne nécessite absolument pas de macro. – Puppy

+2

Le vieux mantra, "n'utilise jamais de macros 'si tu n'en as pas besoin'". –

1

Vous avez enregistré 100 numéros dans une matrice et vous voulez les afficher. Dans un langage simple, nous pouvons dire qu'un tableau est une collection d'éléments de types similaires. Pour cela, vous devez d'abord déclarer la taille du tableau, supposons que vous avez déclaré un tableau comme x [100], puis il va stocker 100 nombres, avec le numéro d'index 0 à 99 ou vous pouvez faire la même chose en déclarant chaque variable comme x [0] = 20, x [1] = 30 ....... x [99] = 98, mais cela prendra plus de temps.Alors c'est mieux si vous faites comme suit.

Accepter les valeurs

int x[100];  
int index; 
for(index=0;index<100;index++) 
{ 
     printf("\nEnter %d number:",index+1); 
     scanf("%d",x[i]); 
    } 

Afficher

for(index=0;index<100;index++) 

{ 

printf("\nArray element at index %d is %d",index,x[i]; 

} 

Ce sera vous aider.

Questions connexes