Найти количество положительных значений в каждом массиве - C (СИ)
Формулировка задачи:
Язык C.
Необходимо найти количество положительных значений в каждом массиве и вывести на печать первым массив, в котором это количество больше. - это сделал и все тут понятно. вопрос в последних шести строках кода. почему при первом выводе значений sca и scb они разные, а в if-е равны?
#include <stdio.h> #include <conio.h> #include <process.h> #include <math.h> #include <locale.h> #include <malloc.h> void main() { int *a, i, *b, k, n, m; setlocale(LC_CTYPE, "Rus"); system("cls"); fflush(stdin); s1: printf("\nВведите размерность массива a, n=:"); scanf("%d", &n); if(n<=0) { puts("N должно быть больше нуля!"); goto s1; } //printf("%d", n); if ((a = (int*)malloc(n*sizeof(int))) != NULL) { printf("\n Введите элементы массива a:\n"); for(i=0; i<n; i++) { printf("a[%d] = ", i); scanf("%d", a+i); } } else { puts("\nНе достаточно памяти!\n"); goto s1; } s2: printf("\nВведите размерность массива b, m="); scanf("%d", &m); if(m<=0) { puts("M должно быть больше нуля!"); goto s2; } if((b=(int*)malloc(m*sizeof(int))) != NULL) { printf("\n Введите элементы массива b:\n"); for(k=0; k<m; k++) { printf("b[%d] = ", k); scanf("%d", b+k); } } else { puts("\nНе достаточно памяти\n"); goto s2; } int sca = 0; for(i=0; i<n; i++) { if(*(a+i) > 0) sca++; printf("\nКолличество положительных элементов массива A - %d\n", sca); } int scb = 0; for(i=0; i<m; i++) { if(*(b+i) > 0) scb++; printf("\nКолличество положительных элементов массива B - %d\n", scb); } if(sca>scb) { puts("\nМассив A\n"); for(i=0; i<n; i++) printf("\na[%d]=%5.d\n", i, *(a+i)); puts("Массив B\n"); for(i=0; i<m; i++) printf("b[%d]=%5.d\n", i, *(b+i)); } if(sca<scb) { puts("Массив B\n"); for(i=0; i<n; i++) printf("\nb[%d]=%5.d\n", i, *(b+i)); puts("Массив A\n"); for(i=0; i<m; i++) printf("a[%d]=%5.d\n",i, *(a+i)); } printf("\nsca=%d\nscb=%d\n", sca, scb); if(sca=scb) printf("\nКолличество положительных значений в массиве равно!\n sca=%d\n scb=%d\n", sca, scb); else puts("Конец программы!"); _getch(); }
Решение задачи: «Найти количество положительных значений в каждом массиве»
textual
Листинг программы
if(sca==scb) printf_s("\nКолличество положительных значений в массиве равно!\n sca=%d\n scb=%d\n", sca, scb); else puts("Конец программы!"); _getch();
Объяснение кода листинга программы
- В условии if(sca==scb) происходит сравнение двух переменных sca и scb.
- Если условие if выполняется, то выводится сообщение с количеством положительных значений в массиве.
- В сообщении используется функция printf_s для вывода чисел.
- Если условие if не выполняется, то выводится сообщение
Конец программы!
с помощью функции puts. - В конце программы используется функция _getch для остановки программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д