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

Где ошибка? - C++

Войти
Регистрация
Восстановить пароль
 
denfox_94
1 / 1 / 0
Регистрация: 07.11.2011
Сообщений: 12
26.12.2011, 20:55     Где ошибка? #1
В поезде K вагонов, в каждом по M мест. Информацию о проданных на поезд билетах записать из файла в двумерный массив, номера строк которого соответствуют номерам вагонов, а номера столбцов – номерам мест. Если билет на то или иное место продан, то соответствующий элемент массива имеет значение 1, в противном случае – 0. Определить: 1) имеются ли свободные места в том или ином вагоне поезда; 2) В какой вагон продано больше всего билетов?

Запускаю через Geany, программа не работает, подскажите где не правильно написал?

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
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <fstream>
using namespace std;
const int n=5, m=3;
void vag()
{ FILE *f; int a[m][n]; int k=0; int a2[m]; int c=0; int max, maxx;
  f = fopen("E:\\file2.txt","r");
            for(int i=0;i<m;i++)
            {
                for(int j=0;j<n;j++)
                fscanf(f,"%d",&a[i][j]); 
               cout<<"\n";
            }
             fclose(f);
             for(int i=0;i<m;i++)
             {
                for(int j=0;j<n;j++)
                cout<<a[i][j];
               cout<<"\n";
               }
    for(int i=0;i<m;i++)
            {
                for(int j=0;j<n;j++)
                if (a[i][j]==0) 
                                    k+=k+1;             
                if (k>0) cout<<"v vagone nomer "<<i+1<<" est` svobodnie mesta";
                else cout<<"v vagone nomer "<<i+1<<" net svobodn. mest";                
                cout<<"\n"  ;           
             }
           for(int i=0;i<m;i++)
            {
                for(int j=0;j<n;j++)
                if (a[i][j]==1) c=c+1;
             a2[i]=c; c=0;
            }  
            for(int i=0;i<m-1;i++)
            {
            max=a2[i];
            if (a2[i+1]>max) maxx=max;
        }
        cout<<"\n v vagon nomer "<<maxx<<" prodano bol`she biletov\n";
 }
 int main()
 {int num;
     do
    { cout << "\n 1 - vagoni";
     cout << "\n 2 - vihod";
     cin>>num;
     switch(num)
     {
     case 1: vag(); break;
     }
    }
     while(num!=2);
    return 0;
 }
 Комментарий модератора 
Используйте теги форматирования кода!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Вася1q
 Аватар для Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 311
26.12.2011, 23:22     Где ошибка? #2
зачем тебе #include <windows.h>?
denfox_94
1 / 1 / 0
Регистрация: 07.11.2011
Сообщений: 12
13.01.2012, 11:11  [ТС]     Где ошибка? #3
Цитата Сообщение от Вася1q Посмотреть сообщение
зачем тебе #include <windows.h>?
ну да в принципе она здесь не нужна.
co6ak
Кошковед
 Аватар для co6ak
406 / 499 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
13.01.2012, 11:22     Где ошибка? #4
как не работает та?
файл присутствует?
denfox_94
1 / 1 / 0
Регистрация: 07.11.2011
Сообщений: 12
13.01.2012, 11:41  [ТС]     Где ошибка? #5
Цитата Сообщение от co6ak Посмотреть сообщение
как не работает та?
файл присутствует?
да конечно присутствует, ну ты запускал??? и у тебя всё работает? у меня вот что выдаёт....
Миниатюры
Где ошибка?  
co6ak
Кошковед
 Аватар для co6ak
406 / 499 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
13.01.2012, 11:44     Где ошибка? #6
ну видимо вот ошибка.
C++
1
<<i+1<<
выходшь за границу массива
неструктурированный код смотреть тяжело и неохота
denfox_94
1 / 1 / 0
Регистрация: 07.11.2011
Сообщений: 12
13.01.2012, 12:21  [ТС]     Где ошибка? #7
Цитата Сообщение от denfox_94 Посмотреть сообщение
В поезде K вагонов, в каждом по M мест. Информацию о проданных на поезд билетах записать из файла в двумерный массив, номера строк которого соответствуют номерам вагонов, а номера столбцов – номерам мест. Если билет на то или иное место продан, то соответствующий элемент массива имеет значение 1, в противном случае – 0. Определить: 1) имеются ли свободные места в том или ином вагоне поезда; 2) В какой вагон продано больше всего билетов?

Запускаю через Geany, программа не работает, подскажите где не правильно написал?

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
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <fstream>
using namespace std;
const int n=5, m=3;
void vag()
{ FILE *f; int a[m][n]; int k=0; int a2[m]; int c=0; int max, maxx;
  f = fopen("E:\\file2.txt","r");
            for(int i=0;i<m;i++)
            {
                for(int j=0;j<n;j++)
                fscanf(f,"%d",&a[i][j]); 
               cout<<"\n";
            }
             fclose(f);
             for(int i=0;i<m;i++)
             {
                for(int j=0;j<n;j++)
                cout<<a[i][j];
               cout<<"\n";
               }
    for(int i=0;i<m;i++)
            {
                for(int j=0;j<n;j++)
                if (a[i][j]==0) 
                                    k+=k+1;             
                if (k>0) cout<<"v vagone nomer "<<i+1<<" est` svobodnie mesta";
                else cout<<"v vagone nomer "<<i+1<<" net svobodn. mest";                
                cout<<"\n"  ;           
             }
           for(int i=0;i<m;i++)
            {
                for(int j=0;j<n;j++)
                if (a[i][j]==1) c=c+1;
             a2[i]=c; c=0;
            }  
            for(int i=0;i<m-1;i++)
            {
            max=a2[i];
            if (a2[i+1]>max) maxx=max;
        }
        cout<<"\n v vagon nomer "<<maxx<<" prodano bol`she biletov\n";
 }
 int main()
 {int num;
     do
    { cout << "\n 1 - vagoni";
     cout << "\n 2 - vihod";
     cin>>num;
     switch(num)
     {
     case 1: vag(); break;
     }
    }
     while(num!=2);
    return 0;
 }
Используйте теги форматирования кода!
Ребят на помогите пожалуйста, очень надо завтра уже экзамен, у меня эта последняя задача осталась((
co6ak
Кошковед
 Аватар для co6ak
406 / 499 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
13.01.2012, 12:31     Где ошибка? #8
что у тебя в файле хранится то. еманарот
denfox_94
1 / 1 / 0
Регистрация: 07.11.2011
Сообщений: 12
13.01.2012, 12:32  [ТС]     Где ошибка? #9
11110
00100
11111
co6ak
Кошковед
 Аватар для co6ak
406 / 499 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
13.01.2012, 12:37     Где ошибка? #10
максимум надо уметь правильно находить.
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
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <fstream>
using namespace std;
const int n=5, m=3;
void vag()
{
    FILE *f;
    int a[m][n];
    int k=0;
    int a2[m];
    int c=0;
    int max, maxx;
    f = fopen("e:\\file2.txt","r");
 
    for(int i=0;i<m;i++)
    {
        for(int j=0;j<n;j++)
            fscanf(f,"%d",&a[i][j]);
        cout<<"\n";
    }
 
    fclose(f);
    for(int i=0;i<m;i++)
    {
        for(int j=0;j<n;j++)
            cout<<a[i][j];
        cout<<"\n";
    }
    for(int i=0;i<m;i++)
    {
        for(int j=0;j<n;j++)
            if (a[i][j]==0)
                k+=k+1;
        if (k>0) cout<<"v vagone nomer "<<i+1<<" est` svobodnie mesta";
        else cout<<"v vagone nomer "<<i+1<<" net svobodn. mest";
        cout<<"\n";
    }
    for(int i=0;i<m;i++)
    {
        c = 0;
        for(int j=0;j<n;j++)
            if (a[i][j]==1) c+=1;
        a2[i]=c;
    }
    max = a2[0];
    for(int i=1;i<m;i++)
    {
        if (a2[i] > max) maxx = i+1;
    }
    cout<<"\n v vagon nomer "<<maxx<<" prodano bol`she biletov\n";
 }
 
 
int main()
{
    int num;
    do
    {
        cout << "\n 1 - vagoni";
        cout << "\n 2 - vihod";
        cin>>num;
        switch(num)
        {
        case 1: vag(); break;
        }
    }
    while(num!=2);
    return 0;
 }
файл c пробелами вообще очень полезная штука
Код
1 1 1 1 0
0 0 1 0 0
1 1 1 1 1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2012, 13:00     Где ошибка?
Еще ссылки по теме:

Где ошибка ? C++
Где ошибка? C++
C++ Где ошибка?
Где ошибка? C++
C++ Где ошибка?

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

Или воспользуйтесь поиском по форуму:
denfox_94
1 / 1 / 0
Регистрация: 07.11.2011
Сообщений: 12
13.01.2012, 13:00  [ТС]     Где ошибка? #11
Цитата Сообщение от co6ak Посмотреть сообщение
максимум надо уметь правильно находить.
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
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <fstream>
using namespace std;
const int n=5, m=3;
void vag()
{
    FILE *f;
    int a[m][n];
    int k=0;
    int a2[m];
    int c=0;
    int max, maxx;
    f = fopen("e:\\file2.txt","r");
 
    for(int i=0;i<m;i++)
    {
        for(int j=0;j<n;j++)
            fscanf(f,"%d",&a[i][j]);
        cout<<"\n";
    }
 
    fclose(f);
    for(int i=0;i<m;i++)
    {
        for(int j=0;j<n;j++)
            cout<<a[i][j];
        cout<<"\n";
    }
    for(int i=0;i<m;i++)
    {
        for(int j=0;j<n;j++)
            if (a[i][j]==0)
                k+=k+1;
        if (k>0) cout<<"v vagone nomer "<<i+1<<" est` svobodnie mesta";
        else cout<<"v vagone nomer "<<i+1<<" net svobodn. mest";
        cout<<"\n";
    }
    for(int i=0;i<m;i++)
    {
        c = 0;
        for(int j=0;j<n;j++)
            if (a[i][j]==1) c+=1;
        a2[i]=c;
    }
    max = a2[0];
    for(int i=1;i<m;i++)
    {
        if (a2[i] > max) maxx = i+1;
    }
    cout<<"\n v vagon nomer "<<maxx<<" prodano bol`she biletov\n";
 }
 
 
int main()
{
    int num;
    do
    {
        cout << "\n 1 - vagoni";
        cout << "\n 2 - vihod";
        cin>>num;
        switch(num)
        {
        case 1: vag(); break;
        }
    }
    while(num!=2);
    return 0;
 }
файл c пробелами вообще очень полезная штука
Код
1 1 1 1 0
0 0 1 0 0
1 1 1 1 1
ааааааа!!!!! как тебе поставить 100 спасибок)))))) спасибо большое)))) вообще выручил
Yandex
Объявления
13.01.2012, 13:00     Где ошибка?
Ответ Создать тему
Опции темы

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