Как описать прототип функции - 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);

Объяснение кода листинга программы

  1. Объявлена функция func(int)
  2. В функции func(int) происходит вывод значения переменной a с помощью функции printf
  3. Значение переменной a получается из аргумента функции func(int)
  4. Аргумент функции func(int) имеет тип int и передается в функцию func(int) без имени
  5. Функция func(int) принимает только один аргумент типа int
  6. Значение переменной a выводится на экран с помощью функции printf
  7. Значение переменной a представлено в виде строки с помощью формата %d
  8. Выполняется вызов функции func(int) с аргументом 1
  9. Значение аргумента 1 передается в функцию func(int)
  10. В функции func(int) происходит вывод значения переменной a
  11. Значение переменной a равно 1
  12. Значение переменной a выводится на экран
  13. Результатом выполнения функции func(int) является вызов функции printf
  14. Значение переменной a представлено в виде строки
  15. Значение переменной a выводится на экран
  16. Значение переменной a равно 1
  17. Значение переменной a представлено в виде строки
  18. Значение переменной a выводится на экран
  19. Значение переменной a равно 1
  20. Значение переменной a представлено в виде строки
  21. Значение переменной a выводится на экран

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы