turkish777
@turkish777
junior frontend

Почему не выводится ничего из функции?

Задача такая:
Дан двумерный массив, вывести сумму всех простых чисел в указанной области
Т.е. через два цикла мы проходим все указанные области, а пока проходим считаем сумму простых чисел и выводим сразу на экран.
Снизу пример, если размер массива 3 на 5
5bc2287196383531247222.jpeg
Компилятор останавливается тут:
5bc229635bb0b818006487.jpeg
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int A[15][15];
int prime(int n){ 
	int i;
	for(i = 2; i < n; i++){
		if(n % i == 0){
			return 0;
		}
	}
	return 1;
}
void  obrabotka (int N, int M){
 	int k, z, l, f, S, i, j, num, che;	
 	k = 0;
 	z = 0;
 	S = 0;
 	che = 0;
 	num = 1;
 	for(k = 0; k < (N - 3); k++){
 		for(z = 0; z < (M - 3); z++){
 			i = k;
 			j = z;
 			while(i < (k + 3)){
 				che	= prime(A[i][j]);
 				if(che == 1){
 					S = S + A[i][j];	
				}
				i++;
				j++;
				che = 0;
			} 
			printf("|%4d |%3d |%3d |%6d |\n", num, k, z, S);
			printf("|------------------------|\n");	
			num++;
		}	
		
	}
}
void main ()
{
    int N, M, i, j, S;
    printf ("vvedite N i M\n");
    scanf ("%d %d", &N, &M);
    printf ("vvedite matrizu\n");
       for (i = 0; i < N; i++){
             for (j = 0; j < M; j++){
                scanf("%d", &A[i][j]);
            }
        }
        
	printf("-------------------------\n");
	printf("| num |  i |  j | result|\n");
	printf("-------------------------\n");
	obrabotka(N, M);
	getch();
 }

Заранее благодарен
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
@res2001
Developer, ex-admin
Как минимум потому что у вас в примере N = 3, а в obrabotka() первый цикл объявлен так:
for(k = 0; k < (N - 3); k++)
т.е. ни одной итерации цикла при таких начальных условиях не будет.

PS: Все остальное не проверял.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 12:20
10000 руб./за проект
22 нояб. 2024, в 11:53
3000 руб./за проект
22 нояб. 2024, в 11:51
20000 руб./за проект