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

Найти среднее из четырех чисел при чтении из файла в структуру - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Геометрия (проверить, принадлежит ли третья точка кругу!) http://www.cyberforum.ru/cpp-beginners/thread879554.html
Отрезок прямой задан двумя точками и есть радиусом круга с центром в первой точке, приверить принадлежит ли третья точка кругу!
C++ Вывод простых чисел задали задачу написать ряд простых чисел,у самого мозгов не хватило толком ее написать,написал с миру по нитке,без ввода с клавиатуры с заданным диапазоном от 3 до 1000 и вот какая пурга... http://www.cyberforum.ru/cpp-beginners/thread879541.html
Реализовать класс Triangle (задание 25), опираясь на класс Angle из задания 26 для представления углов C++
Реализовать класс Triangle (задание 25), опираясь на класс Angle из задания 26 для представления углов. Собственно вот такая проблема. Не могу никак связать эти две задачи. Ну не получается. Вроде 25...
C++ Односвязный кольцевой список (упорядочить список по убыванию номера рейса; добавить сведения о новом пассажире, поместив его после всех пассажиров)
Добрый день народ! Нужна ваша помощь Написал код программы, не могу понять как написать дальше 2 функции. 1. Упорядочить список по убыванию номера рейса (sort) 2. Добавить сведения о новом...
C++ Сумма элементов массива, у которых сумма индексов, на которых они находятся, - четное число. Проверить код http://www.cyberforum.ru/cpp-beginners/thread879501.html
нужно найти сумму элементов массива, у которых сумма индексов, на которых они находятся, четное число. вот что я написал, но код не работает совсем. подскажите что не так. #include<iostream>...
C++ Системные вызовы Мне нужно продемонстрировать работу системных вызовов windows на с++. Как это можно сделать? подробнее

Показать сообщение отдельно
raznorg
0 / 0 / 0
Регистрация: 14.04.2013
Сообщений: 5

Найти среднее из четырех чисел при чтении из файла в структуру - C++

26.05.2013, 18:43. Просмотров 181. Ответов 0
Метки (Все метки)

Есть рабочая программа читающая данные из файла и записывающей их в структуру.
В файле есть 4 числа надо в последий элемент массива записать среднее от этих четырех при чтении из файла.
Сама программа:
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
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#define Lmax 20
#define CLR while(fgetc(f)!='\n')
 
struct Stud
{struct {
    char Fam[Lmax],Name[Lmax],Otchest[Lmax];
    } s_fio; 
char Group[Lmax];
struct {
    int b1,b2,b3,b4,bsr;
    } s_usp; 
Stud *next; 
};
 
Stud* stack(char _name[]) \\процедура чтения из файла
   {Stud *tek,*stack=NULL; 
   FILE *f;
   int i1,i2,i3,i4,i;
   if (!(f=fopen(_name,"r")))
      puts("File not found");
   else
      {
      while(!feof(f))
         { 
         tek=(Stud*)malloc(sizeof(Stud));
         if (fgets(tek->s_fio.Fam,Lmax,f))
            { 
            tek->s_fio.Fam[strlen(tek->s_fio.Fam)-1]='\0';
            fgets(tek->s_fio.Name,Lmax,f);
            tek->s_fio.Name[strlen(tek->s_fio.Name)-1]='\0';
            fgets(tek->s_fio.Otchest,Lmax,f);
            tek->s_fio.Otchest[strlen(tek->s_fio.Otchest)-1]='\0';
            fgets(tek->Group,Lmax,f);
            tek->Group[strlen(tek->Group)-1]='\0';
            fscanf(f,"%d",&tek->s_usp.b1); \\четыре значения и среднее которое надо найти
            fscanf(f,"%d",&tek->s_usp.b2);
            fscanf(f,"%d",&tek->s_usp.b3);
            fscanf(f,"%d",&tek->s_usp.b4);
            fscanf(f,"%d",&tek->s_usp.bsr);
            tek->next=stack;
            stack=tek;
            }
         }
      free(tek);
      }
   return(stack);
   }
   
   void vivod(Stud* stack, char name[]) //âûâîä Г±ГЇГЁГ±ГЄГ* Гў ГґГ*éë
   {FILE *f2=fopen(name,"w");
   if (!stack)
      {fprintf(f2," list after elements removing is empty\n");
      }
   else
      {
      fprintf(f2," list after elements removing\n");
      while(stack!=NULL)
         {
         fprintf(f2,"Fam:%s\n",stack->s_fio.Fam);
         fprintf(f2,"Name:%s\n",stack->s_fio.Name);
         fprintf(f2,"Otchestvo:%s\n",stack->s_fio.Otchest);
         fprintf(f2,"Group:%s\n",stack->Group);
         fprintf(f2,"First mark:%d\n",stack->s_usp.b1);
         fprintf(f2,"Second mark:%d\n",stack->s_usp.b2);
         fprintf(f2,"Fird mark:%d\n",stack->s_usp.b3);
         fprintf(f2,"Fourth mark:%d\n",stack->s_usp.b4);
         fprintf(f2,"Finish mark:%d\n",stack->s_usp.bsr);         
         stack=stack->next;
         }
     }
  fclose(f2);
  }
 
Stud* del(Stud* stack)
   {
   Stud *tek,*pred;
   char group[Lmax];
   printf("Enter a group: ");
   gets(group);
   tek=pred=stack;
   while(stack && tek)
      if (strcmp(group,tek->Group)==0)
         { 
         if(tek==stack)
              { 
              stack=stack->next;
              free(tek);
              tek=pred=stack;
              }
         else 
              { 
              pred->next=tek->next;
              free(tek);
              tek=pred->next;
              }          
         }
      else 
         { 
         pred=tek;
         tek=tek->next;
         }
   return(stack);
   }
 
int main()
{
Stud *first; 
char name1[Lmax],name2[Lmax]; 
printf("Input file name: ");
gets(name1);
printf("Output file name: ");
gets(name2);
first=stack(name1);
if (first!=NULL)
   {
   first=del(first);
   vivod(first,name2);
   printf("Results saved in file %s\n",name2);
   }
return 0;
}
\
пробовал atoi (atof) ничего не выходило и вылезало сообщение
"cannot convert `int*' to `const char*' for argument `1' to `int atoi(const char*)"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru