моя бейсбольная программа должна работать, но я просто не могу найти проблему, почему она не будет. смотреть программу - PullRequest
0 голосов
/ 24 ноября 2010

Эта программа использует массивы для хранения результатов бейсбола за 9 подач.Он рассчитывает команду с высоким счетом для каждого иннинга и общего победителя игры.

#include <iostream>
#include <string>
#include <iomanip>
using namespace std;

const int n = 9;

void PrintInput(char[], int[], char[], int[]);
void InningWinner(char[], int[], char[], int[]);

int main()
{
    int scores1[n];
    int scores2[n];
    char team1[n], team2[n];

         PrintInput(team1,scores1,team2,scores2);
    InningWinner(team1,scores1,team2,scores2);

   return 0;
}

void PrintInput(char t1[], int s1[], char t2[], int s2[])
{
    cout << "\n********************************************************************\n";

    cout << "Team 1: " << t1 << " ";
    for (int i = 0; i < n; i++){
        cout << setw(5) << s1[i];
    }
    cout <<  "\n";
    cout << "Team 2: " << t2 << " ";
    for (int i = 0; i < n; i++){
        cout << setw(5) << s2[i];
    }
}

 void InningWinner(char t1[], int s1[], char t2[], int s2[])
{
        for (int i = 0; i < n; i++){
        if (s1[i] > s2[i])
            cout << endl << t1 << " Wins Inning " << i + 1 << endl;
        else if (s2[i] > s1[i])
            cout << endl << t2 << " Wins Inning " << i + 1 << endl;
        else if (s1[i] == s2[i])
            cout << endl << " Inning " << i+1 << " ends in a TIE" << endl;
    }
}

Ответы [ 2 ]

2 голосов
/ 24 ноября 2010

Все ваши массивы используются без явной инициализации, что приведет к неопределенным результатам.

0 голосов
/ 24 ноября 2010

Вам нужно прочитать значения в счеты 1/2 и команды 1/2, прежде чем распечатывать их или делать вычисления. Вы можете читать из std :: cin как:

std::cout << "Enter " << n << " scores then press enter: ";
int num_scores_read;
for (num_scores_read = 0; std::cin >> scores1[num_scores_read]; ++num_scores_read)
    ;
if (!std::cin || num_scores_read < n)
{
    std::cerr << "error reading score number " << num_scores_read << '\n';
    exit(EXIT_FAILURE);
}

(аналогично для оценки2 и т. Д.)

ИЛИ, вы можете прочитать их из файла (аналогично приведенному выше, но используйте

#include <fstream>
std::ifstream file(filename);
...as above but use "file" in place of "std::cin"...

ИЛИ, просто начните кодировать некоторые примеры значений в своей программе, чтобы начать:

int scores1[n] = { 1, 3, 5, 1, 3, 5, 4, 5, 3 };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...