Как описать прототип функции - C (СИ)
Формулировка задачи:
Помогите разобраться с прототипами, есть следующий код:
и в нем есть несколько одинаковых кусков
собственно вопрос, как пишется этот прототип? чтобы хоть немного сократить этот код.
ЗЫ: Всех мужиков с праздником))
Листинг программы
- #include <vcl.h>
- #pragma hdrstop
- #pragma argsused
- #include <stdio.h>
- #include <conio.h>
- #include <stdlib.h>
- int main(int argc, char* argv[])
- {
- int a, i, b, c;
- /* a - колличество элементов массивов
- b - переменная выхода из бесконечного цикла программы
- i - количество повторов цикла при заполнении массива
- c - для ввода элементов массива
- */
- char err[250]; /*переменная для считывание ошибочно введенных данных*/
- do /*начало цикла повторения программы*/
- {
- clrscr(); /*очищаем экран консоли*/
- printf("Vvedite kol-vo elementov massiva=>"); /*просим ввести количество элементов массива*/
- while (!scanf("%d",&a)) /*условие цикла проверки на правильность введенного значения,
- пока не считается целое число делать*/
- {
- scanf("%s",err); /*считывать в переменную err как символы*/
- printf("error\n"); /*выводить на экран сообщение об ошибке*/
- }
- int *mass=(int*)malloc(a*sizeof(int)); /*выделяем память под массив а-элементов*/
- do /*начало цикла проверки введенного значения
- делать:*/
- {
- printf("\n\nZapolnit avtom?\n\n1-DA\n2-NET\n>"); /*спрашиваем способ заполнения массива*/
- if (!scanf("%d",&e)) /*если не можем считать ка целое число
- делать*/
- {
- scanf("%s",err); /*считывать в переменную err как символы*/
- printf("error\n"); /*выводить на экран сообщение об ошибке*/
- }
- }
- while((e!=1)&(e!=2)); /*условие выхода из цикла, т.е. введено правильное значение*/
- if (e==2) /*если пользователь выбрал заполнение массива вручную (е=2)
- делаем:*/
- {
- /*--------------------цикл ручного ввода значений элементов массива--------------------------*/
- for (i=0; i<a; i++) /*условие повтора цикла*/
- {
- printf("Vvedite element massiva #"); /*выводим на экран запрос на ввод элемента массива*/
- printf("%d",i+1); /*дописываем меняющийся номер элемента массива*/
- printf("=>"); /*выводим для удобства отображения*/
- if (!scanf("%d",&c)) /*если не можем считать как целое число
- делать:*/
- {
- scanf("%s",err); /*считывать в переменную err как символы*/
- printf("error\n"); /*выводить на экран сообщение об ошибке*/
- i--; /*инкрементируем счетчик, чтобы ввод продолжался с места неправильно введенной переменной*/
- }
- else /*иначе*/
- mass[i]=c; /*заносим введенное значение в массив*/
- }
- /*-------------------------конец цикла ручного ввода значений--------------------------------------*/
- }
- else /*иначе (если пользователь выбрал автоматическое заполнение(е=1))*/
- /*-----------------цикл заполнения массива произвольными значениями------------------------------*/
- for (i=0; i<a; i++) /*условие повтора цикла*/
- {
- mass[i]=rand()%100; /*заносим в массив рандомное значение*/
- }
- /*--------------------конец цикла автоматического ввода значений----------------------------------*/
- printf("\nIshodnii massiv "); /*выводим на экран сообщение о выводе исходного массива*/
- /*----------------начало цикла вывода на экран исходного массива----------------------------------*/
- for (i=0; i<a; i++) /*условие повтора цикла*/
- {
- c=mass[i]; /*присваиваем переменной с значение элемента массива*/
- printf("%d", c); /*выводим на экран переменную с*/
- printf(" "); /*печатаем пробел, чтобы разделить элементы при выводе*/
- }
- /*-------------------------конец цикла вывода исходного массива-----------------------------------*/
- printf("\n\nMassiv v obratnom poryadke "); /*выводим сообщение о выводи обратного массива*/
- /*----------------------цикл вывода массива в обратном порядке-----------------------------------*/
- for (i=a-1; i>=0; i--) /*условие цикла*/
- {
- c=mass[i]; /*присваиваем переменной значение элемента массива*/
- printf("%d", c); /*печатаем на экран переменную с*/
- printf(" "); /*печатаем пробел чтобы разделить элементы при выводе*/
- }
- /*----------------------конец цикла вывода обратного массива--------------------------------------*/
- free(mass); /*освобождаем память из под массива*/
- b=0; /*обнуляем переменную b*/
- do /*начало цикла проверки введенной переменной
- делать:*/
- {
- printf("\n\nSnachala?\n\n1-DA\n2-NET\n>"); /*спрашиваем будем ли повторять*/
- if (!scanf("%d",&b)) /*если не можем считать как число
- делать:*/
- {
- scanf("%s",err); /*считать в переменную err как символы*/
- printf("error\n"); /*вывести сообщение об ошибке*/
- }
- }
- while((b!=1)&(b!=2)); /*условие выхода из цикла, т.е. если введено правильное значение*/
- }
- while(b!=2); /*условие выхода из цикла, т.е. если b не 2, то повторяем программу*/
- printf("\nProgrammu podgotovi\nstuden gruppi 429"); /*вывод на экран*/
- printf("\n\nNajmite enter dlya vihoda"); /*вывод на экран*/
- getch (); /*ждем нажатия ентера*/
- return 0; /*возвращаем 0*/
- }
Листинг программы
- if (!scanf("%d",&b)) /*если не можем считать как число
- делать:*/
- {
- scanf("%s",err); /*считать в переменную err как символы*/
- printf("error\n"); /*вывести сообщение об ошибке*/
- }
Решение задачи: «Как описать прототип функции»
textual
Листинг программы
- void func(int);
- void func(int a)
- {
- printf("value = %d\n", a);
- }
- ...
- func(1);
Объяснение кода листинга программы
- Объявлена функция func(int)
- В функции func(int) происходит вывод значения переменной a с помощью функции printf
- Значение переменной a получается из аргумента функции func(int)
- Аргумент функции func(int) имеет тип int и передается в функцию func(int) без имени
- Функция func(int) принимает только один аргумент типа int
- Значение переменной a выводится на экран с помощью функции printf
- Значение переменной a представлено в виде строки с помощью формата %d
- Выполняется вызов функции func(int) с аргументом 1
- Значение аргумента 1 передается в функцию func(int)
- В функции func(int) происходит вывод значения переменной a
- Значение переменной a равно 1
- Значение переменной a выводится на экран
- Результатом выполнения функции func(int) является вызов функции printf
- Значение переменной a представлено в виде строки
- Значение переменной a выводится на экран
- Значение переменной a равно 1
- Значение переменной a представлено в виде строки
- Значение переменной a выводится на экран
- Значение переменной a равно 1
- Значение переменной a представлено в виде строки
- Значение переменной a выводится на экран
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д