Переполнение стека - C (СИ)

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

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

Ребят помогите избавиться от ошибки,вылетает в самом конце программы,программа все считает,все выводит,все верно.
#include <stdio.h>
#include <conio.h>
#include <locale>
#include <stdlib.h>
#include <time.h> 
void vvod_k1 (int *k1)
{
    printf("Введите к1=");
    scanf("%d", k1);
}
void vvod_massiv(int *a1)
{
    int i;
    printf("\nМассив А = "); 
    srand(time(NULL));
    for (i=0;i<20;i++)
        *(a1+i)=rand()%10;
}
void vivod_massiv(int *a1)
{
    int i;
    for (i=0;i<20;i++)
        printf("%d ",*(a1+i));
}
int obrabotka(int *k1, int *a1,int *b)
{
    int i=0;
    *b=0;
    for (i=0;i<20;i++)
        if ((*(a1+i)>0)&&((*(a1+i)%*k1)==0)) 
            *b=*b+*(a1+i);
    return(*b);
}
void results(int k)
{
    printf("\nCумма положительных элементов кратных к1 = %d ", k);
}
void main()
{
    setlocale(LC_CTYPE, "Russian");
    int a1,k1,b, k;
    vvod_k1(&k1);
    vvod_massiv(&a1);
    vivod_massiv(&a1);
    k=obrabotka(&k1,&a1,&b);
    results(k);
    getch();
}

Решение задачи: «Переполнение стека»

textual
Листинг программы
const int SIZE = 20;
int a1[SIZE];

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

  1. В начале кода объявляется константа SIZE, которая равна 20. Она определяет размер массива a1.
  2. Затем объявляется массив a1 типа int с размером SIZE.
  3. В данном коде не происходит инициализации массива a1, поэтому все его элементы по умолчанию равны 0.
  4. Код не содержит дополнительных действий, поэтому список элементов заканчивается.

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


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

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

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