Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
4 / 4 / 4
Регистрация: 06.03.2011
Сообщений: 319
1

Исправить ошибки

14.05.2011, 10:49. Показов 2419. Ответов 29
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите исправить ошибки...пожалуйста(

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
#include "stdafx.h"
#include "iostream"
#include <conio.h>
#include <string>
#include <iomanip>
#include <fstream>
#include <windows.h>
using namespace std;
struct t
{
    string name;
    int victory;
    int draw;
    int lose;
    int goals;
    int missed;
    int points;
}*team,srt;
 
 
void out(int ln)
{
    system("CLS");
    for(int i = 0; i < ln; i++)
    {
 
        cout<<setw(3)<< i+1<<" - "<<setw(6)<< team[i].name<<"  "<<setw(3)<<team[i].points<<endl;
    }
}
 
    
 
 
void sort(int ln)
{
    bool chk = false;
    int count;
    while(!chk)
    {
        count = 0;
        for(int i = 0; i < ln-1; i++)
        {
            if(team[i].points < team[i+1].points)
            {
                srt.name = team[i].name;
                srt.victory = team[i].victory;
                srt.draw = team[i].draw;
                srt.lose = team[i].lose;
                srt.goals = team[i].goals;
                srt.missed = team[i].missed;
                srt.points = team[i].points;
 
                team[i].name = team[i+1].name;
                team[i].victory = team[i+1].victory;
                team[i].draw = team[i+1].draw;
                team[i].lose = team[i+1].lose;
                team[i].goals = team[i+1].goals;
                team[i].missed = team[i+1].missed;
                team[i].points = team[i+1].points;
 
                team[i+1].name = srt.name;
                team[i+1].victory = srt.victory;
                team[i+1].draw = srt.draw;
                team[i+1].lose = srt.lose;
                team[i+1].goals = srt.goals;
                team[i+1].missed = srt.missed;
                team[i+1].points = srt.points;
 
                count++;
            }
            
        }
        if(count == 0)
                chk = true;
    }
}
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
void fileout(int ln,int maxvictory,int maxgoals,int maxrajn)
{
    ofstream output("out.txt",ios::out);
    for(int i = 0; i < ln; i++)
    {
        SetConsoleCP(1251);
        output<<setw(3)<< i+1<<" - "<<setw(6)<< team[i].name<<"  "<<setw(3)<<team[i].points<<maxvictory<<maxgoals<<maxrajn<<endl;
        SetConsoleCP(cp);
    }
    output.close();
}
 
int max_victory (int ln,int max1,int a)
{ max1=team[0].victory;
 for(int i = 0; i < ln; i++)
 {
 if(team[i].victory>max1)
 { max1=team[i].victory;
   a=i;
 }
 
 }
 for(int i = 0; i < ln; i++)
 {
 if(max1 == team[i].victory)
 { 
 cout<<"Максимальное кличество побед у команды "<<team[i].name<<" "<<team[i].victory<<endl;
 }
 }
 return max1;
 }
int max_goals(int ln,int max2,int b)
{ max2=team[0].goals;
   for(int i = 0; i < ln; i++)
   {
       if(team[i].goals>max2)
       { max2=team[i].goals;
          b=i;
       } 
   }
  for(int i = 0; i < ln; i++)
  {
  if(max2 == team[i].goals)
  { 
 cout<<"Наибольшее количество забитых мячей "<<team[i].name<<" "<<team[i].goals<<endl;
 }
 }
   return max2;
}
int max_rajn(int ln,int max3,int c)
{ max3=team[0].goals-team[0].missed;
   for(int i = 0; i < ln; i++)
   {
       if(team[i].goals-team[i].missed>max3)
       {  max3=team[i].goals-team[i].missed;
          c=i;
       } 
   }
   for(int i = 0; i < ln; i++)
   {
    if(max3 ==team[i].goals-team[i].missed)
   { 
   cout<<"Наибольшая разность между забитыми и пропущенными мячами "<<team[ c ].name<<" "<<team[ c ].goals-team[ c ].missed<<endl; 
   }
   }
return max3;
}
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
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"");
    int cp = GetConsoleCP();
    int number;
    cout<<"Введите количество команд: ";
    cin>>number;
    team = new t [number];
    int max1=0;int max2=0;int max3=0;
    int a=0,b=0,c=0;int maxvictor,maxgoals,maxrajn;
    for(int i = 0; i < number; i++)
    {
tchk:   system("CLS");
        cout<<"Ввод данных для "<<i+1<<" команды:"<<endl;
        cout<<"Суммарное количество игр равно: "<<number-1<<endl;
        cout<<"Введите название команды: ";
        SetConsoleCP(1251);
        cin>>team[i].name;
        SetConsoleCP(cp);
        cout<<endl;
        cout<<"Введите количество побед: ";
        SetConsoleCP(1251);
        cin>>team[i].victory;
        SetConsoleCP(cp);
        cout<<endl;
        cout<<"Введите количество ничей: ";
        SetConsoleCP(1251);
        cin>>team[i].draw;
        SetConsoleCP(cp);
        cout<<endl;
        cout<<"Введите количество поражений: ";
        SetConsoleCP(1251);
        cin>>team[i].lose;
        SetConsoleCP(cp);
        cout<<endl;
        cout<<"Введите количество забитых голов: ";
        SetConsoleCP(1251);
        cin>>team[i].goals;
        SetConsoleCP(cp);
        cout<<endl;
        cout<<"Введите пропущенных голов: ";
        SetConsoleCP(1251);
        cin>>team[i].missed;
        SetConsoleCP(cp);
        cout<<endl;
        if((team[i].victory + team[i].draw + team[i].lose) != (number-1)) 
        {
            cout<<"Количество игр, введено неверно!"<<endl;
            system("pause");
            goto tchk;
        }
        team[i].points = team[i].victory*2 + team[i].draw;
    }
sort(number);
out(number);
fileout(number,maxvictory,maxgoals,maxrajn);
int maxvictory=max_victory(number,max1,a);
int maxgoals=max_goals(number,max2,b);
int maxrajn=max_rajn(number,max3,c);
cout<<endl;
system("pause");
    return 0;
 
}
Добавлено через 12 часов 34 минуты
Ну пожалуйста((((((я не понимаю почму ошибки и как их исправить(
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.05.2011, 10:49
Ответы с готовыми решениями:

Ошибки при компиляции - исправить ошибки в коде
Помогите исправить ошибки , не понимаю в чем может быть причина ... #include &lt;conio.h&gt;...

Исправить ошибки
Вывести значение целочисленного выражения, заданного в виде строки S. Выражение определяется...

Исправить ошибки с оператором Do while
c оператором Do while #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;iostream.h&gt; main() {...

Исправить ошибки в коде
Перескакивает через строчку. Подскажите пожалуйста что не так? #include &lt;stdio.h&gt; int main ()...

29
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
14.05.2011, 11:04 2
Покажите сообщения об ошибках. С номерами строк желательно.
1
4 / 4 / 4
Регистрация: 06.03.2011
Сообщений: 319
14.05.2011, 11:47  [ТС] 3
Цитата Сообщение от Jtalk Посмотреть сообщение
Покажите сообщения об ошибках. С номерами строк желательно.
Error 4 error C2086: 'int maxrajn' : redefinition c:\users\днс\documents\visual studio 2005\projects\13\13\13.cpp 208

C
1
int maxrajn=max_rajn(number,max3,c);

Error 3 error C2086: 'int maxgoals' : redefinition c:\users\днс\documents\visual studio 2005\projects\13\13\13.cpp 207
C
1
int maxgoals=max_goals(number,max2,b);


Error 2 error C2065: 'maxvictory' : undeclared identifier c:\users\днс\documents\visual studio 2005\projects\13\13\13.cpp 205

C
1
fileout(number,maxvictory,maxgoals,maxrajn);


Error 1 error C2065: 'cp' : undeclared identifier c:\users\днс\documents\visual studio 2005\projects\13\13\13.cpp 88
C
1
2
3
4
5
6
7
8
9
10
11
void fileout(int ln,int maxvictory,int maxgoals,int maxrajn)
{
    ofstream output("out.txt",ios::out);
    for(int i = 0; i < ln; i++)
    {
        SetConsoleCP(1251);
        output<<setw(3)<< i+1<<" - "<<setw(6)<< team[i].name<<"  "<<setw(3)<<team[i].points<<maxvictory<<maxgoals<<maxrajn<<endl;
        SetConsoleCP(cp); /////
    }
    output.close();
}
0
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
14.05.2011, 12:15 4
Error 4 error C2086: 'int maxrajn' : redefinition c:\users\днс\documents\visual studio 2005\projects\13\13\13.cpp 208
int maxrajn=max_rajn(number,max3,c);
Error 3 error C2086: 'int maxgoals' : redefinition c:\users\днс\documents\visual studio 2005\projects\13\13\13.cpp 207
int maxgoals=max_goals(number,max2,b);
Создание двух переменных с одинаковым именем в одной области видимости. Это недопустимо. Либо уберите int, либо дайте им другое имя.

Error 2 error C2065: 'maxvictory' : undeclared identifier c:\users\днс\documents\visual studio 2005\projects\13\13\13.cpp 205
fileout(number,maxvictory,maxgoals,maxrajn);
Вы объявили не maxvictory, а maxvictor.
C++
1
int a=0,b=0,c=0;int maxvictor,maxgoals,maxrajn;

Error 1 error C2065: 'cp' : undeclared identifier c:\users\днс\documents\visual studio 2005\projects\13\13\13.cpp 88
SetConsoleCP(cp);
C++
1
2
3
4
5
6
7
8
9
10
11
void fileout(int ln,int maxvictory,int maxgoals,int maxrajn)
{
        ofstream output("out.txt",ios::out);
        for(int i = 0; i < ln; i++)
        {
        SetConsoleCP(1251);
                output<<setw(3)<< i+1<<" - "<<setw(6)<< team[i].name<<"  "<<setw(3)<<team[i].points<<maxvictory<<maxgoals<<maxrajn<<endl;
        SetConsoleCP(cp);
        }
        output.close();
}
Вы объявили cp как локальную переменную функции main - из функции fileout к этой переменной доступа нет.
1
4 / 4 / 4
Регистрация: 06.03.2011
Сообщений: 319
14.05.2011, 13:03  [ТС] 5
Цитата Сообщение от Jtalk Посмотреть сообщение
Создание двух переменных с одинаковым именем в одной области видимости. Это недопустимо. Либо уберите int, либо дайте им другое имя.


Вы объявили не maxvictory, а maxvictor.
C++
1
int a=0,b=0,c=0;int maxvictor,maxgoals,maxrajn;



C++
1
2
3
4
5
6
7
8
9
10
11
void fileout(int ln,int maxvictory,int maxgoals,int maxrajn)
{
        ofstream output("out.txt",ios::out);
        for(int i = 0; i < ln; i++)
        {
        SetConsoleCP(1251);
                output<<setw(3)<< i+1<<" - "<<setw(6)<< team[i].name<<"  "<<setw(3)<<team[i].points<<maxvictory<<maxgoals<<maxrajn<<endl;
        SetConsoleCP(cp);
        }
        output.close();
}
Вы объявили cp как локальную переменную функции main - из функции fileout к этой переменной доступа нет.
Спасибо а как исправить ошибку 1....с сp? я добавила
void fileout(int ln,int maxvictory,int maxgoals,int maxrajn, int cp)

fileout(number,maxvictory,maxgoals,maxrajn,cp);и на этот строчке она зацикливается теперь...или не правильно добавила?
0
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
14.05.2011, 13:05 6
Цитата Сообщение от yuliyayuliya28 Посмотреть сообщение
fileout(number,maxvictory,maxgoals,maxrajn,cp);и на этот строчке она зацикливается теперь...или не правильно добавила?
Что значит "зацикливается"?
1
4 / 4 / 4
Регистрация: 06.03.2011
Сообщений: 319
14.05.2011, 13:08  [ТС] 7
Цитата Сообщение от Jtalk Посмотреть сообщение
Что значит "зацикливается"?
Программа не выдает ошибки,но дальше не идёт.....
0
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
14.05.2011, 13:10 8
Цитата Сообщение от yuliyayuliya28 Посмотреть сообщение
Программа не выдает ошибки,но дальше не идёт.....
Сделайте трассировку со входом в функцию - посмотрите на чем конкретно "не идет" - сам вызов функции не должен давать такой эффект.
1
4 / 4 / 4
Регистрация: 06.03.2011
Сообщений: 319
14.05.2011, 13:33  [ТС] 9
Цитата Сообщение от Jtalk Посмотреть сообщение
Сделайте трассировку со входом в функцию - посмотрите на чем конкретно "не идет" - сам вызов функции не должен давать такой эффект.
Он не правильно в файл добавляет....не знаете как исправить?
0
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
14.05.2011, 13:42 10
Цитата Сообщение от yuliyayuliya28 Посмотреть сообщение
Он не правильно в файл добавляет....не знаете как исправить?
Что конкретно неправильно?
1
4 / 4 / 4
Регистрация: 06.03.2011
Сообщений: 319
14.05.2011, 16:12  [ТС] 11
Цитата Сообщение от Jtalk Посмотреть сообщение
Что конкретно неправильно?
Спасибо вроде работает

Добавлено через 2 часа 17 минут
Цитата Сообщение от Jtalk Посмотреть сообщение
Что конкретно неправильно?
Вроде работает...спасибо....а не подскажите как сделать так чтобы в файл выводилось не только максимальное значение но и какая команда?
0
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
14.05.2011, 18:01 12
Ну а где хранятся данные о команде? Берите их оттуда и выводите.
0
4 / 4 / 4
Регистрация: 06.03.2011
Сообщений: 319
14.05.2011, 19:11  [ТС] 13
Цитата Сообщение от Jtalk Посмотреть сообщение
Ну а где хранятся данные о команде? Берите их оттуда и выводите.
Ну вот на примере этой функции
как сохранить не только значение но и какая команда?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int max_victory (int ln,int max1,int a)
{ max1=team[0].victory;
 for(int i = 0; i < ln; i++)
 {
 if(team[i].victory>max1)
 { max1=team[i].victory;
   a=i;
 }
 
 }
 for(int i = 0; i < ln; i++)
 {
 if(max1 == team[i].victory)
 { 
 cout<<"Максимальное кличество побед у команды "<<team[i].name<<" "<<team[i].victory<<endl;
 }
 }
 return max1;
 }
 Комментарий модератора 
Не забываем про теги форматирования кода!
0
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
14.05.2011, 19:27 14
Цитата Сообщение от yuliyayuliya28 Посмотреть сообщение
C++
1
team[i].name
А тут разве не хранится имя команды?
0
4 / 4 / 4
Регистрация: 06.03.2011
Сообщений: 319
14.05.2011, 19:48  [ТС] 15
Цитата Сообщение от Jtalk Посмотреть сообщение
А тут разве не хранится имя команды?
Как как записать чтобы хранилось имя команды с максимальным значением?
0
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
14.05.2011, 20:06 16
Цитата Сообщение от yuliyayuliya28 Посмотреть сообщение
Как как записать чтобы хранилось имя команды с максимальным значением?
Я так понял, team[] - массив структур, описывающих разные команды. Соответственно, имя команды просто нужно взять из того же элемента массива, у которого это "максимальное значение" (кстати что это) максимальное. )
0
4 / 4 / 4
Регистрация: 06.03.2011
Сообщений: 319
14.05.2011, 20:21  [ТС] 17
Цитата Сообщение от Jtalk Посмотреть сообщение
Я так понял, team[] - массив структур, описывающих разные команды. Соответственно, имя команды просто нужно взять из того же элемента массива, у которого это "максимальное значение" (кстати что это) максимальное. )

Вот условие задачи

Составить программу обработки итоговой таблицы чемпионата по футболу. Игры проходили в один круг, каждая команда играла с другой один раз. В программе предусмотреть ввод исходный данных в файл. Обработка должна включать в себя-построение итоговой таблицы чемпионата с распределением команд согласно занятым местам с подсчетом очков,набранных каждой командой (победа-2 очка,ничья-1, поражение 0)определение и вывод названия команды(команд):одержавших наибольшее количество побед,забивших в чемпионате наибольшее количество мячей,имующую лучшую разность забитых и пропущеннных мячей.

Сейчас в файле вот что получается.....а нужно чтобы было название команды....а помои значение максмума
Миниатюры
Исправить ошибки  
0
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
14.05.2011, 20:29 18
Ну так количество голов и количество забитых/пропущенных мячей же тоже хранятся в элементах team[]. Когда находите максимальное количество голов/максимальную разность, сразу вместе с ними выводите и название команды, в чем проблема-то?
0
4 / 4 / 4
Регистрация: 06.03.2011
Сообщений: 319
14.05.2011, 20:50  [ТС] 19
Цитата Сообщение от Jtalk Посмотреть сообщение
Ну так количество голов и количество забитых/пропущенных мячей же тоже хранятся в элементах team[]. Когда находите максимальное количество голов/максимальную разность, сразу вместе с ними выводите и название команды, в чем проблема-то?
Как запомнить в переменную по мимо значения название команды?
0
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
14.05.2011, 20:53 20
Цитата Сообщение от yuliyayuliya28 Посмотреть сообщение
Как запомнить в переменную по мимо значения название команды?
C++
1
std::pair<std::string,int> value(team[i].name,team[i].goals);
например
0
14.05.2011, 20:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.05.2011, 20:53
Помогаю со студенческими работами здесь

Исправить ошибки в коде
#include &lt;stdio.h&gt; int N,M; int a; int KP,KV; int o,oN,t; int i,j; void next(int x){ ...

Как исправить ошибки
1 прога #include &lt;time.h&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;math.h&gt; #define n...

Исправить ошибки в коде
#include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; int main() { int a,b,c,x; double...

Исправить ошибки в коде
Требования: - добавить комментарии к программному коду; - проверить правильность именования...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru