2010-08-26 2 views
2

Как распечатать результаты из цикла?Как распечатать результат цикла?

Например, если у меня есть это что-то простое, как это:

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

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

Как распечатать результаты для й [0], х [1], х [2], без необходимости держать повторение массив в printf? Как и в

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

Я действительно не хочу, чтобы сделать Printf выше, потому что для моей проблемы я вынашивал есть массив из 100 значений, я не могу быть повторив х [0], х [1] ... для одного сто раз.

Надеюсь, что кто-то может помочь благодаря загрузкам!

+0

Используйте цикл, конечно :) –

ответ

8

Может быть, это:

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

Вы можете поместить Printf в петлю. Если вы не поместите «\ n» в printf, следующий printf будет находиться в одной строке. Затем, когда вы закончите цикл, printf просто новую строку.

Нет спецификатора типа printf для массива, вам нужно пройти через элементы массива и распечатать их по одному.

0

Вы можете думать, делать это таким образом:

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

Результат не будет таким же, все номера находятся на разных линиях – Grimmy

+0

Просто обновил свой ответ, чтобы позаботиться о вашей заботе. – Kangkan

2

Почему вы не можете распечатать их, как вы идете вокруг петли?

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

Кроме этого вы можете иметь еще один цикл, под которым strcats результаты объединяются в одну строку для вывода.

+0

Извините, мой плохой, на самом деле моя настоящая проблема вращается вокруг массива значений, которые определяются указателями><, которые, как мне кажется, осложняют ситуацию. – esther

+0

Вы можете распечатать значения в указателях, префиксное значение с помощью *. т. е. "int a = 5; int * b = & a; printf ("% d ", * b);" будет печатать 5. Если ваш массив был указателем, то аналогичным образом («int * data [10]; data [3] = malloc (sizeof (int)); * данные [3] = 123; printf («% d », * данные [3]); « – locka

+0

heya locka, спасибо ... i cna почувствует решение, приходящее ..., возможно, пожалуйста, объясните немного больше о части malloc? спасибо! – esther

2

Вы должны поместить оператор PRINTF в цикле:

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); 
} 

Вы всегда можете использовать MACRO для этого.

Мой предыдущий пример не самый безопасный или наиболее читаемый пример макроса, но может быть отправной точкой для вас.

+1

Хм, в чем причина этого с макросом? – 2010-08-26 15:02:03

+2

-1: Всегда избегайте макросов, когда это возможно. Этот случай абсолютно не требует макроса. – Puppy

+2

Старая мантра, «никогда не используйте макросы», если они вам не нужны ». –

1

Вы сохранили 100 номеров в массиве и хотите отобразить их.

На простом языке мы можем сказать, что массив представляет собой набор элементов аналогичных типов.

Для этого вы должны сначала объявить размер массива, предположим, что вы объявили массив как x [100], тогда он будет хранить 100 чисел с номером индекса от 0 до 99, или вы можете сделать то же самое, объявив каждый переменная, как x [0] = 20, x [1] = 30 ....... x [99] = 98, но это будет более трудоемким. Так что лучше, если вы сделаете следующее.

Принять значения

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

Дисплей

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

{ 

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

} 

Это будет помочь вам.

Смежные вопросы