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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нужно разобраться со структурой программы. Для чего здесь нужны глобальные переменные? Что они делают? http://www.cyberforum.ru/cpp-beginners/thread906002.html
#include<stdio.h> #include<iostream.h> #include<conio.h> #include<stdlib.h> #include<malloc.h> int nun,neq; double **sys,*back; int moreeq=0;
C++ пример с указателями #include "stdafx.h" #include<iostream> #include <clocale> #include <cmath> using namespace std; double sumA(int *y,int d) { int sumka; for (int i=0;i<d;i++) http://www.cyberforum.ru/cpp-beginners/thread905997.html
C++ Для тех, кто знаком с Curl
Хелло, просьба для тех кто работает с Curl, дайте пожалуйста ссылки на документацию по Curl 7.24, гуглил, но даже на их оффициальном сайте нет нормальных доков. Можно, и даже лучше, на английском. ...
C++ Работа с массивом! Сдвиг
Есть массив с n-ным колличеством элементов. Нужно сдвинуть значение каждого элемента вправо на один, а первый и последний элемент поменять местами.
C++ Объяснить переменную функции http://www.cyberforum.ru/cpp-beginners/thread905988.html
Объясните пожалуйста зачем здесь переменная m, какая здесь ее функция? vector<Card> m void Functions::CreateNewCardlibrary(vector<Card> m, char* name){ this->pathToFile = name; ofstream file; ...
C++ описать класс, реализующий указанный ниже тип данных. Класс должен содержать множество конструкторов для создания объектов определенного типа описать класс, реализующий указанный ниже тип данных. Класс должен содержать множество конструкторов для создания объектов определенного типа (конструктор по умолчанию и с параметрами, конструктор... подробнее

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

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

18.06.2013, 21:50. Просмотров 429. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru