c - 当我在 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;
}```
解决方案
pfc
需要 2 个参数,int
并且char* []
. 当您调用它时,您提供了 0 个参数choixjeu
。此外,你没有在函数中使用argc
or ,所以你不妨将其定义更改为,然后你就可以按原样调用它。argv
pfc
int pfc(void);
推荐阅读
- ruby-on-rails - Rails:用户信息未更新(使用哈希渲染 ActiveModel Serializer Null)
- php - 非静态方法不应该被静态调用
- javascript - 从 java 文件中的函数弹出一个简单的文本消息警报
- python - Python:计算二次方程的正根
- apache-camel - 用骆驼发送电子邮件
- python - 如何使用 pyvmomi 检索主机的 WWNN?
- django - 重定向到特定的 url 而不是 Django 中的 404
- background - ionic 3 背景地理位置在后台停止
- php - 提交后保持收音机检查
- haskell - Haskell,语法减少括号