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

Вывод структур - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Пользователь вводит2 больших числа (числа от -1*2^127 до 1*2^127-1). Написать программу для суммирования таких чисел http://www.cyberforum.ru/cpp-beginners/thread736431.html
Пользователь вводит2 больших числа (числа от -1*2^127 до 1*2^127-1). Написать программу для суммирования таких чисел.
C++ Сортировка двумерного массива Здравствуйте! Очень надеюсь на вашу помощь. Прога сортирует двумерный массив в заданном направлении. По цепочке - Слева направо, сверху вниз. Как вывести полученную(отсортированную) матрицу на экран? // 111.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <iostream> #include <string.h> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread736429.html
C++ Определить количество счастливых билетов
Имеется часть катушки с автобусными билетами. Номер билета 6-ти значный. Составить программу. определяющую кол-во счастливых билетов! Я не могу понять даже как писать её на С++...(
C++ Виртуальные функции (создать массив указателей на объекты трех классов)
Задание: создать массив указателей на объекты трех классов. Метод Show почему-то не переопределяется. В данном коде вводится 3 элемента в массив: Имя-Группа, Имя-Группа-4 оценки, Имя-Группа-4 оценки-4 оценки. Student.h #include <iostream> using namespace std; class Student {
C++ Написать программу вычисления Площади кольца. Программа должна проверять правильность исходных данных. http://www.cyberforum.ru/cpp-beginners/thread736377.html
Написать программу вычисления Площади кольца. Программа должна проверять правильность исходных данных. Ниже представлен рекомендуемый вид экрана во время работы программы (данные,введенные пользователем,выделенны полужирным шрифтом Вычислите площади кольца. Введите исходные данные: Радиус кольца (см)-->3.5 Радиус отверстия (см)-->7
C++ наибольшее значение отношения трёхзначного числа к сумме его цифр ребят помогите пожалуста:),Составить программу.которая находит наибольшее значение отношения трёхзначного числа к сумме его цифр(на циклы) подробнее

Показать сообщение отдельно
Manula93
1 / 1 / 0
Регистрация: 08.04.2012
Сообщений: 100

Вывод структур - C++

18.12.2012, 11:21. Просмотров 222. Ответов 0
Метки (Все метки)

Из файла считываю структуры и заношу в массив. Сортирую его по убыванию символов 'н' в поле структуры zachet. Пытаюсь вывести поля fio, gr , sr элементов массива. Выводит не то что нужно. Помогите пожалуйста разобраться с выводом.

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
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>
#include <Windows.h>
#include "iomanip"
 
struct student
{
    char fio[20];
    char gr[6];
    char sr[4];
    char zachet[10];
};
void Spisok_neusp(FILE *f);
//void Sr_ball(FILE *f);
 
int main()
{
    FILE *f;
    char n;
    
    setlocale( LC_ALL,"Russian" );
 
    f= fopen("student1.txt", "r");
    if (f==NULL)
    {  puts ("Файл  student1.txt не найден");
         getch();
       return 1;
    }
    
    do
    {  puts ("\n========================================================");
       puts ("Выберите номер пункта меню:");
       puts ("1 - вывод фамилий неуспевающих студентов");
       puts ("2 - средний балл группы");
       puts ("3 - выход");
      
       puts("------------------------------------------------------");
       n = getchar();
       
       switch(n)
       {
          case '1': Spisok_neusp(f); break;
          
          case '3':  break;
         
          default: puts("\nНужно вводить номер пункта от 1 до 3");
       }
       if (n!='3')
       {  puts("\nДля продолжения нажмите любую клавишу");
          getch();
       }
    }
    while (n != '3');
    fclose(f);
    return 0;
}
 
void Spisok_neusp(FILE *f)
{
    system("cls");
    
    struct student buffer;
    struct student mas[4];
    int i,j,t,k,n;
    char str[11];
    
    rewind(f);
    if(fread(&mas,sizeof(struct student),4,f)!=4)
    printf("Ошибка");
    
        for(i=0;i<3;i++)
        for(j=i+1;j<4;j++)
        {
            strncpy(str,mas[i].zachet,sizeof(str)-1);
            for(t=0;t<11;t++)
            
                
                if(str[t]=='н')
                {
                    k++;
                }
            
            strncpy(str,mas[j].zachet,sizeof(str)-1);
            for(t=0;t<11;t++)
                if(str[t]=='н')
                {
                    n++;
                }
            if(n>k)
            {
                buffer=mas[i];
                mas[i]=mas[j];
                mas[j]=buffer;
            }
            k=0;
            n=0;
        }
        
 
        for(i=0;i<4;i++)
        {
            strncpy(str,mas[i].zachet,sizeof(str)-1);
            for(t=0;t<11;t++)
            
                if(str[t]=='н')
                {
                    k++;
                }
            
 
            if(k!=0)
            {
                printf("%s%s%s\n" ,mas[i].fio,mas[i].gr,mas[i].sr);         
            }   
            k=0;
        }
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru