Member 13725222 Ответов: 3

Как хранить различные значения в одной переменной с помощью цикла.


я пытаюсь закодировать программу,но в этом коде есть проблема, проблема хранения и запоминания 2(может быть, больше) значений в одной переменной с использованием цикла for.
е.г-
int a,i;
 for(i=0;i<2;i++){
   scanf("%d",&a);
 }
 for(i=0;i<2;i++){
    printf("%d ",a);
}

пусть мы вводим 3 5 с помощью scanf, но он печатает 5 5.
но я хочу 3 5, как это сделать. в чем же проблема?

Что я уже пробовал:

В этой программе переменная a,должна печатать введенные значения 3 5,но она возвращает оба 5 5,как она запоминает это при печати,сначала печатает 3, а затем печатает 5.

3 Ответов

Рейтинг:
2

Doug Joseph

Ну, вы могли бы использовать такой массив символов, как этот:

Вроде как конец света, но это сработает.

int  a, i;
char inval[20], intxt[1000];

intxt[0] = 0; // <== NULL termination of string
for( i = 0; i < 2 ; i++ )
{
    inval[0] = 0; // <== Null terminate input just for safety
    printf( "Enter Item #%0d:", i ); 
    gets( inval );
    strcat( intxt, "=" );  // <== some token ('=')
    strcat( intxt, inval ); 
}

i = 0;
do
{
    if ( intxt[i] != 0 )
    {
        if ( intxt[i] == '=' )
        {
            sscanf( &intxt[i+1], "%d", &a ); 
            printf( "%d ", a );
        };
    };    
    
} while ( ( intxt[i] != 0 ) && ( i < 1000 ) );

printf( "\n" );


-Дуга


Рейтинг:
1

Jochen Arndt

Вы должны использовать несколько переменных или - если они одного типа - массив:

#define MY_ARRAY_SIZE 2

int a[MY_ARRAY_SIZE];
for (i = 0; i < MY_ARRAY_SIZE; i++) {
    scanf("%d", &a[i]);
}
for (i = 0; i < MY_ARRAY_SIZE; i++) {
    printf("%d ", a[i]);
}


Рейтинг:
0

Patrice T

Либо вы объединяете 2 петли:

int a,i;
for(i=0;i<2;i++){
    scanf("%d",&a);
    printf("%d ",a);
}

Либо вы узнаете о массивах
Массивы в языке Си[^]
Массивы C: объявление, Инициализация и доступ к элементам (с примерами)[^]