Форум программистов, компьютерный форум CyberForum.ru

Не могу понять как написать правильно. - C++

Войти
Регистрация
Восстановить пароль
 
requester
0 / 0 / 0
Регистрация: 23.11.2009
Сообщений: 40
15.12.2009, 04:54     Не могу понять как написать правильно. #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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#include<iostream>
#include<conio.h>
#include<stdlib.h>
#include <ctype.h>
#include <string.h>
#include <locale.h>
 
setlocale(LC_ALL, "Russian");
 
typedef struct
{
char name [20];
int group;
int mark[5];
} STUDENT;
 
void fill(STUDENT array[]);
void sort(STUDENT a[]);
void show(STUDENT array[]);
 
int entcontrol(int a, int b);
void entcontrol2(char array[]);
 
int main()
{
STUDENT stud[10];
 
fill(stud);
sort(stud);
show(stud);
 
return 0;
}
 
 
void fill(STUDENT array[])
{
char temp[20];
for(int i=0; i<10; i++)
{
printf("Введите имя и инициалы: ");
entcontrol2(temp);
array[i].name = temp;
printf("\nВведите номер группы: ");
array[i].group = entcontrol(1,100);
 
for(int j=0; j<5; j++)
{
printf("\nВведите оценку %d: ", j);
array[i].mark[j] = entcontrol(2,5);
}
printf("\n\n");
}
}
 
void sort(STUDENT a[])
{
for (int i=0; i<10; i++)
{
if (atoi(a[i].name) > atoi(a[i+1].name))
{
STUDENT p = a[i];
a[i] = a[i+1];
a[i+1] = p;
}
}
}
 
void show(STUDENT array[])
{
bool bl=0;
for(int i=0; i<10; i++)
{
for(int j=0; j<5; j++)
{
if(array[i].mark[j]==2) {printf("%s\n"array[i].name); bl=1;}
}
}
if(!bl) printf("\nНет ни одного студента, имеющего хотя бы одну оценку 2.");
}
 
void entcontrol2(char array[])
{
bool bl;
int i,N;
char str[20];
 
do
{
scanf("%s",str);
bl = 1;
for(i=0;i<strlen(str);i++)
 if(!isalpha(str[i])&&!isspace(str[i]))
{
printf("Error: wrong name! Use only letters or space.\n");
bl=0;
break;
}
}
while (!bl);
array = str;
}
 
 
 
int entcontrol(int a, int b)
{
bool bl;
int i,N;
char str[20];
 
do
{
scanf("%s",str);
bl = 1;
for(i=0;i<strlen(str);i++)
 if(!isdigit(str[i]))
{
printf("Error: wrong value\n");
bl=0;
break;
}
N = atoi(str);
if(N<a || N>b)
{
printf("Error: wrong value\n");
bl = 0;
}
}
while (!bl);
return N;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2009, 04:54     Не могу понять как написать правильно.
Посмотрите здесь:

не могу понять че тут не правильно C++
Не могу понять почему программа работает не правильно! C++
Не могу понять как написать в switch - если значение не действительно C++
C++ Не могу понять как передать
C++ Не могу понять правильно ли сделана?
C++ Не могу понять, как правильно передать указатель на объект в файл
C++ Теория вероятностей. Не могу понять как написать на С++
Написал программу, не могу понять правильно или нет C++
Не могу понять как прочитать файл C++
как правильно понять строку в коде? C++
Не могу понять как правильно сделать задачу с функциями C++
Не могу понять как написать C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
15.12.2009, 05:48     Не могу понять как написать правильно. #2
поправил синтаксис, логику не трогал
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#include<iostream>
#include<conio.h>
#include<stdlib.h>
#include <ctype.h>
#include <string.h>
#include <locale.h>
 
 
 
typedef struct
{
    char name [20];
    int group;
    int mark[5];
} STUDENT;
 
void fill(STUDENT array[]);
void sort(STUDENT a[]);
void show(STUDENT array[]);
 
int entcontrol(int a, int b);
void entcontrol2(char array[]);
 
int main()
{
    setlocale(LC_ALL, "Russian");
    STUDENT stud[10];
 
    fill(stud);
    sort(stud);
    show(stud);
 
    return 0;
}
 
 
void fill(STUDENT array[])
{
    char temp[20];
    for(int i=0; i<10; i++)
    {
        printf("Введите имя и инициалы: ");
        entcontrol2(temp);
        strcpy(array[i].name,temp);
        printf("\nВведите номер группы: ");
        array[i].group = entcontrol(1,100);
 
        for(int j=0; j<5; j++)
        {
            printf("\nВведите оценку %d: ", j);
            array[i].mark[j] = entcontrol(2,5);
        }
        printf("\n\n");
    }
}
 
void sort(STUDENT a[])
{
    for (int i=0; i<10; i++)
    {
        if (atoi(a[i].name) > atoi(a[i+1].name))
        {
            STUDENT p = a[i];
            a[i] = a[i+1];
            a[i+1] = p;
        }
    }
}
 
void show(STUDENT array[])
{
    bool bl=0;
    for(int i=0; i<10; i++)
    {
        for(int j=0; j<5; j++)
        {
            if(array[i].mark[j]==2) {printf("%s\n",array[i].name); bl=1;}
        }
    }
    if(!bl) printf("\nНет ни одного студента, имеющего хотя бы одну оценку 2.");
}
 
void entcontrol2(char array[])
{
    bool bl;
    int i,N;
    char str[20];
 
    do
    {
        scanf("%s",str);
        bl = 1;
        for(i=0;i<strlen(str);i++)
            if(!isalpha(str[i])&&!isspace(str[i]))
            {
                printf("Error: wrong name! Use only letters or space.\n");
                bl=0;
                break;
            }
    }
    while (!bl);
    array = str;
}
 
 
 
int entcontrol(int a, int b)
{
    bool bl;
    int i,N;
    char str[20];
 
    do
    {
        scanf("%s",str);
        bl = 1;
        for(i=0;i<strlen(str);i++)
            if(!isdigit(str[i]))
            {
                printf("Error: wrong value\n");
                bl=0;
                break;
            }
            N = atoi(str);
            if(N<a || N>b)
            {
                printf("Error: wrong value\n");
                bl = 0;
            }
    }
    while (!bl);
    return N;
}
Yandex
Объявления
15.12.2009, 05:48     Не могу понять как написать правильно.
Ответ Создать тему
Опции темы

Текущее время: 09:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru