Объясните почему программа пропускает scanf, после задания первой матрицы - C (СИ)
Формулировка задачи:
#include <stdio.h> #include <stdlib.h> #include <locale.h> int main() { int N,M,F,D,i,j,k; char p; N = 10; int **A = (int**)malloc(N * sizeof(int*)); int **B = (int**)malloc(N * sizeof(int*)); int **C = (int**)malloc(N * sizeof(int*)); for (i = 0; i < N; i++) { A[i] = (int*)malloc(N * sizeof(int)); B[i] = (int*)malloc(N * sizeof(int)); C[i] = (int*)malloc(N * sizeof(int)); } printf("vvedite 4islo strok i stolbcov m1 : \n"); scanf("%d %d", &N,&M); printf("zaplnite m1 : \n"); for (i = 0; i < N; i++) for(j = 0; j < M; j++) scanf("%d", &A[i][j]); /* вот тут вся проблема!!! программа просто после задания данных для первой матрицы, не дает ввести значение для P просто пропускает и выводит "Введите действие" и переходит сразу ко второй матрице... Объясните где ошибка printf("vvedite deistvie \n"); scanf("%c",&p); */ printf("Vvedite 4islo strok i stolbcov m2:\n"); scanf("%d %d", &F, &D); printf(" zapolnite m2 :\n"); for(i = 0; i < F; i++) for(j = 0; j < D; j++) scanf("%d", &B[i][j]); /* если знак между двумя матрицами будет + то по моей логике должен выполнить сумму матриц if ( p=='+') { for(i=0; i<N; i++) { for(j=0;j<M;j++) C[i][j] += A[i][j]+B[i][j]; } for (i=0;i<N;i++) { for (j=0;j<M;j++) printf("%d ", C[i][j]); printf("\n"); } } else { printf("dfgjdfjgdg"); } */ /* вид первой матрицы printf("\n m1 \n"); for(i = 0; i < N; i++){ for(j = 0; j < M; j++) printf("%d ", A[i][j]); printf("\n"); } */ getchar(); return 0; }
Решение задачи: «Объясните почему программа пропускает scanf, после задания первой матрицы»
textual
Листинг программы
printf("vvedite 4islo strok i stolbcov m1 : \n"); scanf("%d %d", &N, &M); printf("zaplnite m1 : \n"); for (i = 0; i < N; i++) for (j = 0; j < M; j++) scanf("%d", &A[i][j]); /* вот тут вся проблема!!! программа просто после задания данных для первой матрицы, не дает ввести значение для P просто пропускает и выводит "Введите действие" и переходит сразу ко второй матрице... Объясните где ошибка*/ getchar(); printf("vvedite deistvie \n"); scanf("%c",&p);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д