首页 > 解决方案 > 当我在 c 中调用函数时出现问题

问题描述

我是一名学生,我想制作一个午餐 3 种不同游戏的程序,我用开关/外壳制作了一个菜单,但是当我复制了我的朋友游戏(我刚刚制作了菜单)时,我不能吃午餐功能你能帮我吗,对不起我的代码和英语技能低..

我不能午餐的函数是“int pfc(int argc, char* argv[])”,我在第 40 行的第三种情况下调用它。

感谢那些会帮助我们的人..

代码:`

#include <stdlib.h>
#include <windows.h>
#include <time.h>
#include <string.h>

int menu();
int choixjeu();
int text(int);
int pfc(int argc, char* argv[]);


int main()
{
    menu();
    return 0;
}


int menu(){
        printf("\n            ======================================\n            |        bienvenue sur uGame         |\n            ======================================\n");
        printf("\n                     selectionner un jeu !\n");
        printf("\n                           1.Pendu\n                        2.Puissance 4\n                   3.Pierre feuille ciseaux\n                          4.quitter\n");
        printf("\n             Entre le numero de votre selection !\n");
        printf("\n\n");
        choixjeu();
}

int choixjeu(){
    int choixjeu;
    scanf("%d",&choixjeu);
    switch(choixjeu){
        case 1:
            printf("pendu");
            break;
        case 2:
            printf("puissance4");
            break;
        case 3:
            pfc();
            break;
        case 4:
            printf("\n\n\n\n\n\n\n\n\n\n\n\n\n                    Au revoir merci !\n\n\n\n\n\n\n\n\n\n\n\n\n");
            break;
        default:
            printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n           touche non assigne veuiller recommencer... \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
            Sleep(1500);
            printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
            menu();
            break;
        }
}

int pfc(int argc, char* argv[]){

    char pierre[] = "pierre", feuille[] = "feuille", ciseaux[] = "ciseaux";
    int choixM = 0, choixO = 0, manche = 0, gagneM = 0, gagneO = 0, nul = 0, choixJoueur = 0;

    srand(time(NULL));
    choixO = (rand() % 3+1);

    printf("Bienvenue dans Pierre , Feuille , Ciseaux ! \n\n");
    printf("La partie se deroulera en 3 manche !\n\n");

    do{

            printf("Quel est votre choix ? (tapez votre choix entre 1, 2 & 3)\n"
                    "1 - Pierre\n"
                    "2 - Feuille\n"
                    "3 - Ciseaux\n\n"
                    "Votre choix : ");
                scanf("%d",&choixJoueur);

            choixJoueur = text(choixJoueur);

            if(strcmp(choixJoueur, pierre) == 0)
                choixM = 1;
            else if(strcmp(choixJoueur, feuille) == 0)
                choixM = 2;
            else if(strcmp(choixJoueur, ciseaux) == 0)
                choixM = 3;

            printf("%d\n",choixM);
            printf("%d\n\n",choixO);


                     if(choixM == choixO){
                        printf("Egalite !\n\n");
                        nul++;
                    }
                    else if ((choixM == 1 && choixO == 3)||(choixM == 2 && choixO == 1) || (choixM == 3 && choixO == 2)){
                        printf("Bravo ! Vous avez gagne !\n\n");
                        gagneM++;
                    }
                    else if((choixM == 1 && choixO == 2) || (choixM == 2 && choixO == 3) || (choixM == 3 && choixO == 1)){
                        printf("L'ordi a gagne ! ! \n\n");
                        gagneO++;
                    }

            manche++;

            while (manche>3)
                srand(time(NULL));
                 choixO = (rand() % (3 - 1 + 1)) + 1;
    }while(manche < 3);

        printf("La partie en %d manches est terminee !\n", manche);
        printf("Les score est : \n");
        printf("\t Ordinateur : %d points\n",gagneO);
        printf("\t Joueur : %d points\n\n",gagneM);
            if(gagneO > gagneM)
                printf("L'Ordinateur a gagne !");
            else if(gagneM > gagneO)
                printf("Bravo ! Vous avez gagne\n\n");
            else
                printf("Egalite, personne ne gagne...\n\n");
    return 0 ;
}

int text(int choix){
    switch(choix){
        case 1 :
            choix = "pierre";
            break;
        case 2 :
            choix = "feuille";
            break;
        case 3 :
            choix = "ciseaux";
            break;
        default :
            printf("Erreur. Veuillez reccomencer en appuyant sur n'importe quelle touche. \n");
            break;
    }
    return choix;
}```

标签: c

解决方案


pfc需要 2 个参数,int并且char* []. 当您调用它时,您提供了 0 个参数choixjeu。此外,你没有在函数中使用argcor ,所以你不妨将其定义更改为,然后你就可以按原样调用它。argvpfcint pfc(void);


推荐阅读