Как описать прототип функции - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите разобраться с прототипами, есть следующий код:
Листинг программы
  1. #include <vcl.h>
  2. #pragma hdrstop
  3. #pragma argsused
  4. #include <stdio.h>
  5. #include <conio.h>
  6. #include <stdlib.h>
  7. int main(int argc, char* argv[])
  8. {
  9. int a, i, b, c;
  10. /* a - колличество элементов массивов
  11. b - переменная выхода из бесконечного цикла программы
  12. i - количество повторов цикла при заполнении массива
  13. c - для ввода элементов массива
  14. */
  15. char err[250]; /*переменная для считывание ошибочно введенных данных*/
  16. do /*начало цикла повторения программы*/
  17. {
  18. clrscr(); /*очищаем экран консоли*/
  19. printf("Vvedite kol-vo elementov massiva=>"); /*просим ввести количество элементов массива*/
  20. while (!scanf("%d",&a)) /*условие цикла проверки на правильность введенного значения,
  21. пока не считается целое число делать*/
  22. {
  23. scanf("%s",err); /*считывать в переменную err как символы*/
  24. printf("error\n"); /*выводить на экран сообщение об ошибке*/
  25. }
  26. int *mass=(int*)malloc(a*sizeof(int)); /*выделяем память под массив а-элементов*/
  27. do /*начало цикла проверки введенного значения
  28. делать:*/
  29. {
  30. printf("\n\nZapolnit avtom?\n\n1-DA\n2-NET\n>"); /*спрашиваем способ заполнения массива*/
  31. if (!scanf("%d",&e)) /*если не можем считать ка целое число
  32. делать*/
  33. {
  34. scanf("%s",err); /*считывать в переменную err как символы*/
  35. printf("error\n"); /*выводить на экран сообщение об ошибке*/
  36. }
  37. }
  38. while((e!=1)&(e!=2)); /*условие выхода из цикла, т.е. введено правильное значение*/
  39. if (e==2) /*если пользователь выбрал заполнение массива вручную (е=2)
  40. делаем:*/
  41. {
  42. /*--------------------цикл ручного ввода значений элементов массива--------------------------*/
  43. for (i=0; i<a; i++) /*условие повтора цикла*/
  44. {
  45. printf("Vvedite element massiva #"); /*выводим на экран запрос на ввод элемента массива*/
  46. printf("%d",i+1); /*дописываем меняющийся номер элемента массива*/
  47. printf("=>"); /*выводим для удобства отображения*/
  48. if (!scanf("%d",&c)) /*если не можем считать как целое число
  49. делать:*/
  50. {
  51. scanf("%s",err); /*считывать в переменную err как символы*/
  52. printf("error\n"); /*выводить на экран сообщение об ошибке*/
  53. i--; /*инкрементируем счетчик, чтобы ввод продолжался с места неправильно введенной переменной*/
  54. }
  55. else /*иначе*/
  56. mass[i]=c; /*заносим введенное значение в массив*/
  57. }
  58. /*-------------------------конец цикла ручного ввода значений--------------------------------------*/
  59. }
  60. else /*иначе (если пользователь выбрал автоматическое заполнение(е=1))*/
  61. /*-----------------цикл заполнения массива произвольными значениями------------------------------*/
  62. for (i=0; i<a; i++) /*условие повтора цикла*/
  63. {
  64. mass[i]=rand()%100; /*заносим в массив рандомное значение*/
  65. }
  66. /*--------------------конец цикла автоматического ввода значений----------------------------------*/
  67. printf("\nIshodnii massiv "); /*выводим на экран сообщение о выводе исходного массива*/
  68. /*----------------начало цикла вывода на экран исходного массива----------------------------------*/
  69. for (i=0; i<a; i++) /*условие повтора цикла*/
  70. {
  71. c=mass[i]; /*присваиваем переменной с значение элемента массива*/
  72. printf("%d", c); /*выводим на экран переменную с*/
  73. printf(" "); /*печатаем пробел, чтобы разделить элементы при выводе*/
  74. }
  75. /*-------------------------конец цикла вывода исходного массива-----------------------------------*/
  76. printf("\n\nMassiv v obratnom poryadke "); /*выводим сообщение о выводи обратного массива*/
  77. /*----------------------цикл вывода массива в обратном порядке-----------------------------------*/
  78. for (i=a-1; i>=0; i--) /*условие цикла*/
  79. {
  80. c=mass[i]; /*присваиваем переменной значение элемента массива*/
  81. printf("%d", c); /*печатаем на экран переменную с*/
  82. printf(" "); /*печатаем пробел чтобы разделить элементы при выводе*/
  83. }
  84. /*----------------------конец цикла вывода обратного массива--------------------------------------*/
  85. free(mass); /*освобождаем память из под массива*/
  86. b=0; /*обнуляем переменную b*/
  87. do /*начало цикла проверки введенной переменной
  88. делать:*/
  89. {
  90. printf("\n\nSnachala?\n\n1-DA\n2-NET\n>"); /*спрашиваем будем ли повторять*/
  91. if (!scanf("%d",&b)) /*если не можем считать как число
  92. делать:*/
  93. {
  94. scanf("%s",err); /*считать в переменную err как символы*/
  95. printf("error\n"); /*вывести сообщение об ошибке*/
  96. }
  97. }
  98. while((b!=1)&(b!=2)); /*условие выхода из цикла, т.е. если введено правильное значение*/
  99. }
  100. while(b!=2); /*условие выхода из цикла, т.е. если b не 2, то повторяем программу*/
  101. printf("\nProgrammu podgotovi\nstuden gruppi 429"); /*вывод на экран*/
  102. printf("\n\nNajmite enter dlya vihoda"); /*вывод на экран*/
  103. getch (); /*ждем нажатия ентера*/
  104. return 0; /*возвращаем 0*/
  105. }
и в нем есть несколько одинаковых кусков
Листинг программы
  1. if (!scanf("%d",&b)) /*если не можем считать как число
  2. делать:*/
  3. {
  4. scanf("%s",err); /*считать в переменную err как символы*/
  5. printf("error\n"); /*вывести сообщение об ошибке*/
  6. }
собственно вопрос, как пишется этот прототип? чтобы хоть немного сократить этот код. ЗЫ: Всех мужиков с праздником))

Решение задачи: «Как описать прототип функции»

textual
Листинг программы
  1. void func(int);
  2.  
  3. void func(int a)
  4. {
  5.     printf("value = %d\n", a);
  6. }
  7.  
  8. ...
  9.  
  10.     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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы