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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
XeniaZharinova
0 / 0 / 0
Регистрация: 18.06.2013
Сообщений: 23
#1

Массив: Найти число команд, имеющих больше побед, чем поражений. - C++

18.06.2013, 21:50. Просмотров 432. Ответов 2
Метки нет (Все метки)

На языке Pascal работает правильно, однако та же самая программа на C++ работает с ошибкой. Неправильно происходит накручивание побед (w[i]) и поражений(l[i]). Помогите найти в чём причина.
ЗАДАНИЕ:
Таблица футбольного чемпионата задана квадратной матрицей порядка n, в которой все элементы, принадлежащие главной диагонали равны 0, а каждый элемент, не принадлежащий главной диагонали, равен 2, 1 или 0 (число очков набранных в игре: 2 – выигрыш, 1 – ничья, 0 – проигрыш).
Найти число команд, имеющих больше побед, чем поражений.

Pascal
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
Program z3;
Uses CRT;
Var
    i,j,k,N:integer;
    A:array [1..50,1..50] of integer;
    w:array [1..50] of integer;
    l:array [1..50] of integer;
Begin
    Clrscr;
    write('N=');
    readln(N);
    k:=0;
    for i:=1 to N do
        for j:=1 to N do
            if i=j then
                A[i,j]:=0
            else 
                if i>j then begin
                    write('A[',i,',',j,']=');
                    readln(A[i,j]);
                    if (A[i,j]<>0) and (A[i,j]<>1) and (A[i,j]<>2) then begin
                        writeln('Owu6ka!');
                        readkey;
                        halt;
                    end;
                    if (A[i,j]=0) then
                        A[j,i]:=2;
                    if (A[i,j]=1) then
                        A[j,i]:=1;
                    if (A[i,j]=2) then
                        A[j,i]:=0;
                end;
    for i:=1 to N do begin
        w[i]:=0;
        l[i]:=0;
        for j:=1 to N do begin
            if (A[i,j]=0) and (i<>j) then
                inc(l[i]);
            if A[i,j]=2 then
                inc(w[i]);
        end;
    end;
    for i:=1 to N do
        if w[i]>l[i] then
            inc(k);
    writeln('4ucJIo koMaHD, uMeIOwux 6oJIbwe no6eD, paBHo ',k);
    readkey;
End.
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
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main()
{   int i,j,k,A[50],w[50],l[50],N;
    clrscr();
    printf("N=");
    scanf("%d",&N);
    k=0;
    for (i=1;i<=N;i++)
        for (j=1;j<=N;j++)
            if (i==j)
                A[i,j]=0;
            else
                if(i>j)
                {   printf("A[%d,%d]=",i,j);
                    scanf("%d",&A[i,j]);
                    if ((A[i,j]!=0)&&(A[i,j]!=1)&&(A[i,j]!=2))
                    {   printf("Owu6ka!");
                        getch();
                        exit(1);
                    }
                    if (A[i,j]==0)
                        A[j,i]=2;
                    if (A[i,j]==1)
                        A[j,i]=1;
                    if (A[i,j]==2)
                        A[j,i]=0;
                }
    for (i=1;i<=N;i++)
    {   w[i]=0;
        l[i]=0;
        for (j=1;j<=N;j++)
        {
            if ((A[i,j]==0)&&(i!=j))
                l[i]++;
            if (A[i,j]==2)
                w[i]++;
        }
    }
[B][COLOR="Red"]    for (i=1;i<=N;i++)
    {
        printf("w[%d]=%d",i,w[i]);
        printf("w[%d]=%d",i,w[i]);
    }[/COLOR][/B]
    for (i=1;i<=N;i++)
        if (w[i]>l[i])
            k++;
    printf("4ucJIo koMaHD, uMeIOwux 6oJIbwe no6eD, paBHo %d",k);
    getch();
}
Выделенный фрагмент создан для вывода на экран побед и поражений в каждой строке, которые и считаются неправильно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2013, 21:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массив: Найти число команд, имеющих больше побед, чем поражений. (C++):

Найти число команд, имеющих больше побед, чем поражений - C++
Найти число команд, имеющих больше побед, чем поражений.

Определить номера команд, имеющих больше трех побед - C++
В массиве хранится информация о количестве побед одержанных 20 футбольными командами. Определить номера команд имеющих больше 3х побед.

Считать с файла информацию о команде "Название" "Город", количество побед, поражений, ничьих, забитых и пропущенных мячей - C++
Здравствуйте. Необходимо написать программу С++ : &quot;Считать с файла информацию о команде &quot;Название&quot; &quot;Город&quot;, количество побед, ...

Одномерный массив (произведение последних членов, сумма которых будет не больше чем число С) - C++
ребята, помогииите))) для одномерного массива А(n) найти произведение последних членов этого массива, сумма которых будет не больше чем...

Найти студентов имеющих средний балл больше заданного - C++
Доброго времени суток! Необходимо решить задание 2мя способами. С помощью классов и с помощью switch Вывести фамилии, имена, отчества...

Вставить число k1 после всех чисел в массиве больше чем digit - C++
int i; int size_of_array=10; int last_element; int second; int even; int k1= 4, k2= 7; float digit = 2;...

2
ViktorKozlov
133 / 125 / 2
Регистрация: 13.12.2012
Сообщений: 293
18.06.2013, 21:54 #2
C++
1
A[i,j]=0;
Наверное, A[i][j];
1
XeniaZharinova
0 / 0 / 0
Регистрация: 18.06.2013
Сообщений: 23
18.06.2013, 22:09  [ТС] #3
Цитата Сообщение от ViktorKozlov Посмотреть сообщение
C++
1
A[i,j]=0;
Наверное, A[i][j];
Спасибо, языки путаю
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2013, 22:09
Привет! Вот еще темы с ответами:

Найти число пассажиров, имеющих более двух вещей и... - C++
Тема: Записи. Работа с текстовыми файлами. Дан файл f, содержащий сведения о багаже нескольких пассажиров. Багаж пассажира...

char массив, get(), ввести больше символов чем в массиве - C++
#include &lt;iostream&gt; using std::cin; using std::cout; using std::endl; int main() { setlocale(LC_ALL,&quot;&quot;); char...

Как создать массив или вектор размера больше чем 0x7fffffff? - C++
Вопрос вот в чем.. максимальная разрядность сетки блоков нитей 2^31-1 на GPU (используя CUDA на видеокартах с Compute capability 3.0 и...

Почему в массив фиксированного размера N возможно записать элементов больше, чем N ? - C++
почему если я создаю массив char a, то могу в него записывать больше одного елемента?


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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