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

Как правильно объявить структуру - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Начертить 100 окружностей случайного диаметра и цвета http://www.cyberforum.ru/cpp-beginners/thread1223003.html
Написать программу, которая вычерчивает на экране узор из 100 окружностей случайного диаметра и цвета.
C++ Найти максимальное из двух целых чисел Написать функцию, которая возвращает максимальное из двух целых чисел, полученных в качестве аргумента. http://www.cyberforum.ru/cpp-beginners/thread1223002.html
Вычислить длину введённой с клавиатуры строки C++
Написать программу, которая вычисляет длину введённой с клавиатуры строки.
C++ Найти количество ненулевых элементов массива
Написать программу, которая вводит с клавиатуры одномерный массив из 5 целых чисел, после чего выводит количество ненулевых элементов (массивы)
C++ Вывести на экран значение 10 раз http://www.cyberforum.ru/cpp-beginners/thread1222999.html
Написать программу, которая выводит на экран значение, введённое с клавиатуры, 10 раз. (Циклы)
C++ Проверить, является ли год високосным Написать программу, которая проверяет, является ли год високосным (операторы if, else) подробнее

Показать сообщение отдельно
OverDozero
99 / 99 / 6
Регистрация: 07.04.2011
Сообщений: 522
06.07.2014, 16:20  [ТС]     Как правильно объявить структуру
Цитата Сообщение от uglyPinokkio Посмотреть сообщение
Нет. Количество предметов должно быть атрибутом студента а не предмета.
Поправил код в соответствии с вашим замечанием.Так должно быть?
Не получается передать указатель по предмету в вывод.Как правильно передать указатель?
И еще вопрос:Когда ввожу фамилию студента,допустим Иванов,и далее количество предметов-все нормально.Но когда хочу ввести так Иванов К.Д.-программы закрывается в случае если указан 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
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
#include <alloc.h>
/*ÑîñòГ*ГўГЁГІГј ïðîãðГ*ììó ôîðìèðîâГ*Г*ГЁГї Г¤Г*Г*Г*ûõ îá ГіГ±ГЇГҐГўГ*åìîñòè ñòóäåГ*òîâ ГЇГ® äèñöèïëèГ*ГҐ:
ГґГ*ìèëèÿ Г€.ГЋ., 5 îöåГ*îê ГЇГ® ГЄГ®Г*òðîëüГ*ûì ìåðîïðèÿòèÿì.
ÎðãГ*Г*èçîâГ*ГІГј âû÷èñëåГ*ГЁГҐ èòîãîâûõ îöåГ*îê: åñëè ñòóäåГ*ГІ Г*Г*ГЎГ°Г*Г« 80% ГЁ áîëåå îò Г¬Г*ГЄГ±ГЁГ¬Г*ëüГ*Г® âîçìîæГ*îãî ГЎГ*ëëГ* – îöåГ*ГЄГ* 5,
îò 60% äî 79% – 4; îò 40% äî 59% -3, ìåГ*ГҐГҐ 40% - 2*/
 
 struct predmet{
    char predm [256];//ïðåäìåò
    int ozp [5];//îöåГ*ГЄГЁ
    int maxball;
 };
 struct students{
    char FIO[256];//ÔÈÎ
    int kolpred;//êîëè÷åñòâî ïðåäìåòîâ 
    struct predmet *pred;
  };
int percent=0;//ñêîëüêî ïðîöåГ*ГІ Г*Г*ГЎГ°Г*Г« ñòóäåГ*ГІ
int sumball=0;//Г±ГіГ¬Г* ГЎГ*ëëîâ
int kolvostud=0;//êîëè÷åñòâî Г±ГіГІГҐГ¤Г*òîâ
int pr=0;
 
 int main ()
  {
      
     printf("Vvedite loli4estvo studentov:");
     scanf("%d",&kolvostud);
         students study [kolvostud];
      for (int i=0;i<kolvostud;i++){//1 on I
     printf("Vvedite FIO studenta(4erez probel):");
     scanf("%s",study[i].FIO);
          
         printf("Vvedite koli4estvo predmetov u studenta:");
         scanf("%d",&study[i].kolpred);
         predmet pred[study[i].kolpred];
                        for (int j=0;j<study[i].kolpred;j++){//2 on J
     
             printf("Vvedite nazvanie %d predmeta:",j+1);
             scanf("%s",pred[j].predm);
              
               printf("Vvedite max.ball po predmetu %s: ",pred[j].predm);
             scanf("%d",&pred[j].maxball);
               for (int k=0;k<5;++k){//3 on K
                 printf("Vvedite ocenku %d:",k+1);
             scanf("%d",&pred[j].ozp[k]); }//3 off K
                   }//2 off J 
                         }//1 off I
      
      //âûâîä
     
for (int i=0;i<kolvostud;i++){//1 on I
      printf("FIO studenta %s:\n",study[i].FIO);
      printf("Koli4estvo predmetov u studenta %s %d:\n",study[i].FIO,study[i].kolpred);
                  for (int j=0;j<study[i].kolpred;j++){//2 on J
                  printf("Predmet:%s\n",pred[j].predm);
                  printf("Max.ball po predmetu %s: \n",pred[j].maxball);
                  printf("Bally studenta po predmetu %d:");
                   for (int k=0;k<5;++k){//3 on K
                    
                 printf("%d",pred[j].ozp[k]);
                 printf("/n");
              }//3 off K
                   }//2 off J 
                         }//1 off I*/
    getch();
  return 0;}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru