Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.90/10: Рейтинг темы: голосов - 10, средняя оценка - 4.90
bebedor
3 / 3 / 1
Регистрация: 14.02.2011
Сообщений: 9
1

Как описать прототип функции

23.02.2011, 09:42. Просмотров 1851. Ответов 1
Метки нет (Все метки)

Помогите разобраться с прототипами, есть следующий код:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#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*/
}
и в нем есть несколько одинаковых кусков
C
1
2
3
4
5
6
    if (!scanf("%d",&b))    /*если не можем считать как число
                                делать:*/
            {
            scanf("%s",err);    /*считать в переменную err как символы*/
            printf("error\n");  /*вывести сообщение об ошибке*/
            }
собственно вопрос, как пишется этот прототип? чтобы хоть немного сократить этот код.
ЗЫ: Всех мужиков с праздником))
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.02.2011, 09:42
Ответы с готовыми решениями:

Прототип функции
Препод сказал, что такое оформление функции неправильно void Dix(double &amp;a,...

Компилятор ругается на прототип функции
Добрый вечер! Не могу понять почему компилятор ругается на прототип функции. И...

Прототип функции и заголовочные файлы - требуется подтверждение
Доброго ремени суток! Необходимо написать программу, считывающую введенные с...

Просит прототип функции при ее вызове. Зачем?
Из main'a обращаюсь к wbtr, все проходит. Обращаюсь к rbfr, просит прототип. Но...

Ошибка - Функции Random и GetTickCount должны иметь прототип
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;dos.h&gt; #define MAX 20...

1
accept
4833 / 3255 / 455
Регистрация: 10.12.2008
Сообщений: 10,569
24.02.2011, 08:17 2
C
1
2
3
4
5
6
7
8
9
10
void func(int);
 
void func(int a)
{
    printf("value = %d\n", a);
}
 
...
 
    func(1);
1 строка - это прототип функции
3-6 строки - это определение функции
10 строка - это вызов функции
найди отличия

C
1
2
if (!scanf("%d",&b))    /*если не можем считать как число
                                                                делать:*/
неправильно, scanf() может вернуть в данном случае: EOF, 0, 1
EOF меньше нуля, значит истина

прога запутанная, пиши словесное описание, потом по нему уже функции

C
1
int *mass=(int*)malloc(a*sizeof(int));
а если число a отрицательное или равно нулю ? где это выскочит ?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.02.2011, 08:17

Описать новый структурный тип. Описать требуемые в задаче функции для работы со структурами. Продемонстрироват
УСЛОВИЕ : Описать новый структурный тип. Описать требуемые в задаче функции для...

Можно ли описать переменные (присвоить им значения) в функции?
Добрый вечер. Меня интересует, можно ли описать переменные (x1, x2, y1, y2) в...

Описать функции находящие минимальный и максимальный элемент массива
Задача 1. Программирование с использованием функций Используя эту функцию,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru