Вывод переменных в цикле - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Проблема в цикле :
#include <stdio.h>
#include <conio.h>
 
int main ()
{
    int add=1,k=0;
    int a[k];
    printf ("add= %d \n",add);
    
    while (add!=0)
    {
       printf ("Vvedite element massiva : ");
    scanf ("%d",&add);
    add=a[k];
    k++;
printf ("k= %d \n",k);
printf ("add= %d \n",add);
}
printf ("k= %d \n",k);
printf ("add= %d \n",add);
printf ("nylevoi element massiva: %d",a[0]);
getch ();
return 0;
}
При вводе переменной add в цикле выдает совершенно другое число : Как решить проблему с переменной (что бы в цикле отображались те же значения, что мы и вводим) ?

Решение задачи: «Вывод переменных в цикле»

textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
 
int main ()
{
    int add,k=0,size=20;
    int* a=(int*)malloc(size*sizeof(int));
    
    do
    {
if(k=size-1)
{
size+=20;
a=(int*)realloc(a,size*sizeof(int));
}
       printf ("Vvedite element massiva : ");
    scanf ("%d",&add);
    a[k]=add;
    k++;
printf ("k= %d \n",k);
printf ("add= %d \n",add);
}while (add!=0);
 
printf ("k= %d \n",k);
printf ("add= %d \n",add);
printf ("nylevoi element massiva: %d",a[0]);
getch ();
return 0;
}

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы:
    • stdio.h для работы с функциями ввода-вывода
    • conio.h для работы с функцией getch(), которая используется для приостановки выполнения программы до тех пор, пока пользователь не введет данные
    • stdlib.h для работы с функцией malloc() и realloc(), которые используются для выделения памяти под массив
  2. Создаем переменные:
    • add для хранения введенного пользователем числа
    • k для хранения индекса текущего элемента массива
    • size для хранения размера массива
  3. Выделяем память под массив:
    • Используем функцию malloc() для выделения памяти под массив, размер которого определяется переменной size
  4. Запускаем цикл do-while:
    • Внутри цикла происходит чтение числа с помощью функции scanf(), которое сохраняется в переменной add
    • Число затем сохраняется в соответствующем элементе массива a с использованием индекса k
    • Индекс k увеличивается на 1 после каждого добавления элемента в массив
    • После добавления элемента в массив выводится сообщение об успешном добавлении с использованием функции printf()
  5. Изменяем размер массива при необходимости:
    • Если значение k равно size-1, то это означает, что массив полон, и его размер нужно увеличить
    • Используем функцию realloc() для выделения новой памяти под массив с новым размером
    • Значение size увеличивается на 20 для обеспечения достаточного размера массива
  6. Выводим сообщения об успешном добавлении и об окончании ввода данных:
    • После окончания цикла do-while выводится сообщение с текущим значением k и add
    • После цикла программа выводит сообщение с первым элементом массива, используя индекс 0
  7. Приостанавливаем выполнение программы до тех пор, пока пользователь не нажмет клавишу:
    • Используем функцию getch() для приостановки выполнения программы до тех пор, пока пользователь не введет данные

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.25 из 5
Похожие ответы