По какой-то причине я продолжаю получать нечетную ошибку времени выполнения при запуске этой программы. Он отлично компилируется, и большая часть программы работает.Нечетная ошибка времени выполнения в C?
Код:
#include <stdio.h>
#include "genlib.h"
#include "simpio.h"
#include <string.h>
main()
{
printf("This program will show you the scores of the basketball games for 1 season.\n");
printf("What is the name of the basketball league? ");
string league = GetLine();
printf("How may games were played by the group? ");
int gamesplayed = GetInteger();
string teams[3];
int wonGames[3];
int a, b, c;
for (a = 0; a < 4; a++)
{
printf("What is team %d's name? ", a+1);
teams[a] = GetLine();
}
for (b = 0; b < 4; b++)
{
printf("How many times did team %s win? ", teams[b]);
wonGames[b] = GetInteger();
}
printf("\n\n ----===[%s]===----\n", league);
printf("Team Name | Games Played | Games Won | Percentage");
for(c = 0; c < 4; c++)
{
double percent = 100 * (wonGames[c]/gamesplayed);
printf("| %s | %d | %d | %lf |", teams[c], gamesplayed, wonGames[c], percent);
}
}
Проблема, кажется, с печатью teams[3]
в последний цикл. Независимо от того, что я делаю это не выходит из строя после того, как он печатает printf("Team Name | Games Played | Games Won | Percentage");
Библиотека GetInteger()
и GetLine()
являются две функции я использую, чтобы получить вход, его из simpio.h библиотеки. Любая помощь будет оценена по достоинству.
EDIT: Если индексирование массива начинается с 0, то команды shouldnt [3] имеют четыре элемента? (0, 1, 2, 3)
В массиве 'teams' имеется только три записи, поэтому нет' команд [3] '. То же самое касается 'wonGames'. –
Я предлагаю вам #define numEntries (4), затем измените определения массива на использование numEntries и измените ваши (-ы) выражения для использования numEntries – user3629249
, предполагая, что GetLine() и GetInteger() являются вашими личными функциями, я ожидаю, что GetLine() для возврата указателя на выделение памяти malloc'd, где выделенная память содержит строку или целое число. Поэтому «строка-лига» должна быть (если предположить, что «строка» является допустимым типом) «строка * лига» – user3629249