是否存在类似于字符串比较的函数但对于整数?

时间:2017-11-09 19:10:42

标签: c

我想允许用户输入变量,然后将该金额与我的百分比数组进行比较。然后在我的百分比数组中显示所有金额等于OR大于用户输入的数字。我也想以较低的金额这样做,但它们应该和我想的一样。如果有人能提供任何见解我会很感激!代码将附在下面..(如果我能澄清任何内容,请告诉我)

/*
10/31/2017
FOOTBALL STATS
*/

#include <stdio.h>

#define NUM_TEAM 30
#define LEN_NAME 40

void displayWelcome(void);
void calcPercent(double percentages[], int elements, int wins[], int losses[], int ties[]);
void showAll (char name[], char league[], char division[], int wins, int  losses, int ties, double percentages);
void displayExit(void);

int main (void)
{
//Display welcome message
displayWelcome();

char name[NUM_TEAM][LEN_NAME] = {0};
char division[NUM_TEAM][LEN_NAME] = {0};
char league[NUM_TEAM][LEN_NAME] = {0};
char line[LEN_NAME];
char menu, again;

int wins[NUM_TEAM] = {0};
int losses[NUM_TEAM] = {0};
int ties[NUM_TEAM] = {0};
int i = 0, count, sum, percentQuery;

double percentages[NUM_TEAM] = {0};
;

FILE * filePtr;

filePtr = fopen("C:\\Users\\thoma\\NFLTeams.txt", "r");
if (filePtr == NULL)
{
    printf("Unable to open file\n");
}
else
{
    while (i < NUM_TEAM && fgets( line, sizeof(line), filePtr) != NULL)
    {
        sscanf(line, "%s%s%s%i%i%i",name[i], league[i], division[i], &wins[i], &losses[i], &ties[i]);
        i++;
    }
    fclose(filePtr);
    count = i;
}
//^ end reading in file

//Calculate win percentages
calcPercent( percentages, count, wins, losses, ties);

//Main menu loop
do
{
    //Ask user how they would like to search
    printf("Please choose an option from the following menu:"
           "\n-Enter 'a' to display all information contained in the database"
           "\n-OR Enter 'b' to search by league"
           "\n-OR Enter 'c' to search by division"
           "\n-OR Enter 'd' to search by wins above a certain percentage"
           "\n-OR Enter 'e' to search by wins below a certain percentage: ");
    scanf("\n%c", &menu);

    //If user chooses a
    if (menu == 'a')
    {
        //Display all of database
        for (i = 0; i <= count - 1; i = i + 1)
        {
            showAll(name[i], league[i], division[i], wins[i], losses[i], ties[i], percentages[i]);
        }
    }
    //If user chooses b
    else if (menu == 'b')
    {
        // Propmt user to choose AFC or NFC
        printf("\nPlease choose from the following menu:\nEnter 'a' to search for teams in the AFC league \nOR enter 'b' to search for teams in the NFC league: ");
        // scan for what the user entered
        scanf("\n%c", &menu);
        //Display option for AFC
        if (menu == 'a')
        {
            for (i = 0; i < count; i = i + 1 )
            {
                if (strcmp (league[i], "AFC") == 0)
                {
                    printf("Here are the standings for the teams in the AFC division:\n");
                    printf("Team Name: %s \nLeague: %s\nDivision: %s\nWins: %i Losses: %i Ties: %i\nWin Rate: %.2lf%%\n\n", name[i], league[i], division[i], wins[i], losses[i], ties[i], percentages[i]);
                }
            }
        }
        else
            //Display option for NFC
        {
            for (i = 0; i < count; i = i + 1 )
            {
                if (strcmp (league[i], "NFC") == 0)
                {
                    printf("Here are the standings for the teams in the NFC division:\n");
                    printf("Team Name: %s \nLeague: %s\nDivision: %s\nWins: %i Losses: %i Ties: %i\nWin Rate: %.2lf%%\n\n", name[i], league[i], division[i], wins[i], losses[i], ties[i], percentages[i]);
                }
            }
        }
    }
    //If user chooses c
    else if (menu == 'c')
    {
        printf("\nPlease choose an option from the following menu: \nEnter 'a' if you would like to search for North division standings\n"
               "OR enter 'b' to search for East division standings\nOR enter 'c' to search for South division standings\nOR enter"
               " 'd' to search for West division standings: ");
        scanf("\n%c", &menu);

        if (menu == 'a')
        {
            for (i = 0; i < count; i = i + 1 )
            {
                if (strcmp (division[i], "North") == 0)
                {
                    printf("Here are the standings for the teams in the North division:\n");
                    printf("Team Name: %s \nLeague: %s\nWins: %i Losses: %i Ties: %i\nWin Rate: %.2lf%%\n\n", name[i], league[i], wins[i], losses[i], ties[i], percentages[i]);
                }
            }
        }
        else if (menu == 'b')

        {
            for (i = 0; i < count; i = i + 1 )
            {
                if (strcmp (division[i], "East") == 0)
                {
                    printf("Here are the standings for the teams in the East division:\n");
                    printf("Team Name: %s \nLeague: %s\nWins: %i Losses: %i Ties: %i\nWin Rate: %.2lf%%\n\n", name[i], league[i], wins[i], losses[i], ties[i], percentages[i]);
                }
            }
        }
        else if (menu == 'c')

        {
            for (i = 0; i < count; i = i + 1 )
            {
                if (strcmp (division[i], "South") == 0)
                {
                    printf("Here are the standings for the teams in the South division:\n");
                    printf("Team Name: %s \nLeague: %s\nWins: %i Losses: %i Ties: %i\nWin Rate: %.2lf%%\n\n", name[i], league[i], wins[i], losses[i], ties[i], percentages[i]);
                }
            }
        }
        else if (menu == 'd')

        {
            for (i = 0; i < count; i = i + 1 )
            {
                if (strcmp (division[i], "West") == 0)
                {
                    printf("Here are the standings for the teams in the West division:\n");
                    printf("Team Name: %s \nLeague: %s\nWins: %i Losses: %i Ties: %i\nWin Rate: %.2lf%%\n\n", name[i], league[i], wins[i], losses[i], ties[i], percentages[i]);
                }
            }
        }

    }
    //if user chooses d
    else if (menu == 'd')
    {
       /* UNFINISHED.. COULD NOT FIGURE OUT SYNTAX
       My goal was to compare my percentages array to the value that the user inputted (which was stored in the variable 'percentQuery' and display values that were greater than or equal to my percent
                                                                                        Query
        printf("In this menu, you may search for a win percentage above a certain amount.\n"
               "Please enter the amount you would like to search ABOVE: ");
        scanf("\n%d", &percentQuery);

        for (i = 0; i < count; i = i + 1 )
    {
                //I could not figure out the syntax for comparing to see if it was greater than or equal to percentQuery
               if (strcmp (percentages[i], percentQuery) == 0)
                    {
                printf("Here are the standings for the teams with a win percent above %i%%"), percentQuery;
                printf("Team Name: %s \nLeague: %s\nWins: %i Losses: %i Ties: %i\nWin Rate: %.2lf%%\n\n", name[i], league[i], wins[i], losses[i], ties[i], percentages[i]);
            }
        }*/
    }
    //if user chooses e
    else if (menu == 'e')
    {
         /* UNFINISHED.. COULD NOT FIGURE OUT SYNTAX
       My goal was to compare my percentages array to the value that the user inputted (which was stored in the variable 'percentQuery' and display values that were less than or equal to my percent
                                                                                        Query
        printf("In this menu, you may search for a win percentage below a certain amount.\n"
               "Please enter the amount you would like to search BELOW: ");
        scanf("\n%d", &percentQuery);
        for (i = 0; i < count; i = i + 1 )
    {
              //  I could not figure out the syntax for comparing to see if it was less than or equal to percentQuery
               if (strcmp (percentages[i], percentQuery) == 0)
                    {
                printf("Here are the standings for the teams with a win percent below %i%%"), percentQuery;
                printf("Team Name: %s \nLeague: %s\nWins: %i Losses: %i Ties: %i\nWin Rate: %.2lf%%\n\n", name[i], league[i], wins[i], losses[i], ties[i], percentages[i]);
            }
        }*/
    }

    //Prompt user for replay of main menu
 printf("\nWould you like to return to the main menu?\n"
           "Enter (y)es or (n)o: ");
           scanf("\n%c", &again);

}
 while (again == 'y');



//whatever the user types in, strcmp to our data base and set it equal to that.
displayExit();
return 0;
}

void displayWelcome(void)
{
printf("Welcome to my Football Stats.\n\n");
}

void calcPercent(double percentages[], int count, int wins[], int losses[], int ties[])
{
int i, sum;
for (i = 0; i <= count -1; i = i + 1)
{
    sum = wins[i] + losses[i] + ties[i];
    percentages[i] = ((double) wins[i] / sum) * 100;
}
}
void showAll (char name[], char league[], char division[], int wins, int  losses, int ties, double percentages)
{
printf("Team Name: %s \nLeague: %s\nDivision: %s\nWins: %i Losses: %i Ties: %i\nWin Rate: %.2lf%%\n\n", name, league, division, wins, losses, ties, percentages);
}

void displayExit(void)
{
printf("\nThese results were brought to you by.");
}

1 个答案:

答案 0 :(得分:0)

只需将>=运算符用于“高于或等于”,将<用于“低于”:

if (percentages[i] >= percentQuery) {
    /* ... */
}

percentages是一个双打数组,而不是字符串。