当前位置: 代码迷 >> C语言 >> 请问这句c语言的话到底怎么错了阿!
  详细解决方案

请问这句c语言的话到底怎么错了阿!

热度:192   发布时间:2006-05-10 05:55:00.0
请问这句c语言的话到底怎么错了阿!

我写的这句CODE
typedef enum {LEMON=1,CHERRY,ORANGE,PLUM,BELL,BAR} symbalsT;
结果GCC的时候就有下面这句警告
为什么呀
我都是按照书上来的阿

warning: parameter names (without types) in function declaration

搜索更多相关的解决方案: c语言  

----------------解决方案--------------------------------------------------------
那么我应该在哪里加上数据类型呢?
typedef enum {LEMON=1,CHERRY,ORANGE,PLUM,BELL,BAR} symbalsT;
这个难道不应该直接就转换成整数了么
从1开始到6呀?????

----------------解决方案--------------------------------------------------------

那个定义是对的~

看这个错误提示

警告:函数声明部分变量缺少数据类型

函数声明部分的问题,和
枚举类型无关


----------------解决方案--------------------------------------------------------


明白你说的了
但是整个CODE还是有2个错误。。。不能顺利GCC。。。。
头痛
把程序发上来大家谁能帮着看看
做一个老虎机样的东西
老师非要我们用typedef enum

#include <stdio.h>
#include "random.h"
#include "genlib.h"
#include "simpio.h"
#include "strlib.h"


typedef enum {LEMON=1,CHERRY,ORANGE,PLUM,BELL,BAR} symbalsT;

symbalsT calc_payout(symbalsT a symbalsT b symbalsT c);
bool Getyesorno(string prompt);
void Playslot();

int main()
{
int bal=50 ;
while(TRUE)
{
Playslot();
bal+=calc_payout();
printf("You have $%d.", bal);
if (!Getyesorno(" Would you like to play (n = no)?"));
break;
}//while
return 0;

}//main


void Playslot()
{
symbalsT a, b, c;
int pay;

a=RandomInteger(1,6);
b=RandomInteger(1,6);
c=RandomInteger(1,6);
pay = calc_payout(a,b,c);
if (pay>0)
printf("%8d %8d %8d -- You Win % %d", a,b,c,pay);
else
printf("%8d %8d %8d -- You lose ",a,b,c);
}//playslot

symbalsT calc_payout (a,b,c)
{
if (a==6&&b==6&&c==6) return 250;
if (a==5 &&b==5&& (c==5||6)) return 20;
if (a==4 &&b==4&& (c==4||6)) return 14;
if (a==3 &&b==3&& (c==3||6)) return 10;
if (a==2&& b==2 && c==2) return 7;
if ((a==2&& b==2)||(b==2&&c==2)||(a==2&&c==2)) return 5;
if (a==2||b==2||c==2) return 2;
else return -1;
return 0;

}//calc+payout

bool Getyesorno(string prompt)
{
string answer;

while (TRUE)
{
printf("%s",prompt);
answer=GetLine();
if (StringEqual(answer, "n"))
return (FALSE);
else
return (TRUE);
}//while
}// Getyesorno


----------------解决方案--------------------------------------------------------
[wuzh@pc70 ~/p6]$ gcc -Wall -o 8.12.out Ch8_12.c cslib.a
Ch8_12.c:12: error: syntax error before 'symbalsT'
Ch8_12.c: In function 'Playslot':
Ch8_12.c:42: warning: conversion lacks type at end of format

出来的结果是这样。。。我实在是弄不好了。。呜呜
一整个下午都花在这个上面了。。。。
----------------解决方案--------------------------------------------------------

你这个我的编译器搞不了,我把我看到的,感觉应该改的说一下

void Playslot(); 加个void ?
symbalsT calc_payout (a,b,c) 加上数据类型??



----------------解决方案--------------------------------------------------------

你用的什么系统啊?Linux

我下了个类型gcc的,在XP上运行,出现29个错误


----------------解决方案--------------------------------------------------------
不是阿
用的一个叫PUTTY在WIN XP下面用的阿
我现在在国外学C的
跟中文的系统也许不同吧。。。。。。我GCC之后确实只有2个WARNING的
不过能不能运行我估计是不行
STRING还没弄清楚

----------------解决方案--------------------------------------------------------
呼呼。。。。终于在去掉
typedef enum {LEMON=1,CHERRY,ORANGE,PLUM,BELL,BAR} symbalsT;
这个的情况下。让它运行了
可。。。。怎么把数字转换成字母显示出来啊?????
----------------解决方案--------------------------------------------------------

啊啊,等我回到家了才能用linux来看


----------------解决方案--------------------------------------------------------
  相关解决方案