Программа выдает неправильный результат - C (СИ) (157276)
Формулировка задачи:
#include <stdio.h> #define a 20 #define n 20 int main () { int i,k; int arr[a],m[n]; i=0; k=20; do { printf ("\n mas[%d] =" , i+1); if(!scanf("%d",& m[i])) fflush (stdin); else i++; }while (i<a); for(i=0;i<k;i++) arr[m[i]]++; printf("\nzna4eni9 vstre4auts9\n"); for (i = 0; i < k; i++) printf("%4d --------%2d\n", i, arr[i]); return 0;}
Решение задачи: «Программа выдает неправильный результат»
textual
Листинг программы
#include <stdio.h> #define a 20 #define n 20 int main () { int i,k; int arr[a],m[n]; i=0; k=20; do { printf ("\n mas[%d] =" , i+1); if(!scanf("%d",& m[i])) fflush (stdin); else i++; }while (i<a); for(i=0;i<=k;i++) m[i]=0; for(i=0;i<=k;i++) arr[m[i]]++; printf("\nzna4eni9 vstre4auts9\n"); for (i = 0; i <= a; i++) printf("%4d --------%2d\n", i, arr[i]); return 0;}
Объяснение кода листинга программы
- Программа начинается с подключения заголовочного файла stdio.h, который содержит функции для ввода и вывода данных.
- Макросы
a
иn
определяются как 20. - Функция main() начинается с инициализации двух переменных типа int -
i
иk
, которые равны 0 и 20 соответственно. - Переменная
arr
типа int объявляется как массив, размер которого определяется макросомa
. - Переменная
m
типа int также объявляется как массив, размер которого определяется макросомn
. - Цикл do-while начинается, и в нем происходит следующее:
- Выводится сообщение с индексом массива
m
и числом, введенным пользователем, и после этого значениеi
увеличивается на 1. - Если пользователь ввел некорректное значение (например, букву вместо числа), то значение
i
не изменяется, и цикл продолжается.
- Выводится сообщение с индексом массива
- После окончания цикла do-while, цикл for выполняется для очистки массива
m
и заполнения его нулями. - Затем цикл for выполняется для подсчета количества каждого уникального значения в массиве
arr
. - Выводится сообщение
zna4eni9 vstre4auts9
(это просто набор символов, не имеющий смысла для программы). - Затем выводится таблица, в которой каждое значение
i
выравнивается в 4-х символьных графах, а значениеarr[i]
выравнивается в 2-х символьных графах. - Функция main() завершается, и программа заканчивается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д