Форум программистов, компьютерный форум 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; file.open(name, ios::binary);// setlocale (0,""); int count = m.size(); for(int i=0; i<count; i++){
C++ описать класс, реализующий указанный ниже тип данных. Класс должен содержать множество конструкторов для создания объектов определенного типа описать класс, реализующий указанный ниже тип данных. Класс должен содержать множество конструкторов для создания объектов определенного типа (конструктор по умолчанию и с параметрами, конструктор копии) плюс обязательная операция присваивания и сравнения с использованием механизма перегрузки операции мой вариант (матрица): вычитание, умножение, вычисление подробнее

Показать сообщение отдельно
XeniaZharinova
 Аватар для XeniaZharinova
0 / 0 / 0
Регистрация: 18.06.2013
Сообщений: 23
18.06.2013, 21:50     Массив: Найти число команд, имеющих больше побед, чем поражений.
На языке 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();
}
Выделенный фрагмент создан для вывода на экран побед и поражений в каждой строке, которые и считаются неправильно.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru