Переполнение стека - 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];
Объяснение кода листинга программы
- В начале кода объявляется константа SIZE, которая равна 20. Она определяет размер массива a1.
- Затем объявляется массив a1 типа int с размером SIZE.
- В данном коде не происходит инициализации массива a1, поэтому все его элементы по умолчанию равны 0.
- Код не содержит дополнительных действий, поэтому список элементов заканчивается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д