搜索
查看: 803|回复: 10
打印 上一主题 下一主题

哪错了???大神快来!!!

[复制链接]
跳转到指定楼层
楼主
发表于 2014-6-26 20:23:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
[mw_shl_code=c,true]#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<time.h>

#define cls; system("cls")

void jiafaceshi();
void jianfaceshi();
void chengfaceshi();
void chufaceshi();
void jieshuhoudefen();
int main()
{

int i,x,y,k,s=0,a,c;
printf("你好,同学,这次考试的形式很特别,请你发挥所能,在电脑上作答吧!老师相信你!\n");
Sleep(3000);
cls;
srand((unsigned)time(NULL));
for(i=1;i<=10;i++){

x=rand()%100;
y=rand()%100;
c=rand()%4;

switch(c)
{
case 0:
jiafaceshi();
case 1:
jianfaceshi();
case 2:
chengfaceshi();
case 3:
chufaceshi();
}
}
jieshuhoudefen();

system("pause");
return 0;
}
void jiafaceshi(){
printf("%d+%d=",x,y);
scanf("%d",&k);

if(k==x+y)
{
printf("恭喜你答对了!\n");
printf("\n");cls;

s+=10;cls;
break;
}
else
{
printf("很遗憾你答错了!\n");
while(k!=x+y){
printf("%d+%d=",x,y);
scanf("%d",&k);
}
printf("\n");
cls;
break;
}
}

void jianfaceshi(){
printf("%d+%d=",x,y);
scanf("%d",&k);

if(k==x+y)
{
printf("恭喜你答对了!\n");
printf("\n");cls;

s+=10;cls;
break;
}
else
{
printf("很遗憾你答错了!\n");
while(k!=x+y){
printf("%d+%d=",x,y);
scanf("%d",&k);
}
printf("\n");
cls;
break;
}
}

void chengfaceshi(){
printf("%d×%d=",x,y);
scanf("%d",&k);
if(k==x*y)
{
printf("恭喜你答对了!\n");
printf("\n");cls;
s+=10;break;
}
else
{
printf("很遗憾你答错了!\n");
while(k!=x*y)
{
printf("%d×%d=",x,y);
scanf("%d",&k);
}
printf("恭喜你答对了!\n");
printf("\n");cls;break;
}
}

void chufaceshi(){
if(x%y!=0||y==0)
{
while(x%y!=0||y==0)
{
x=rand()%100;
y=rand()%100;
}
}
printf("%d÷%d=",x,y);
scanf("%d",&k);
if(k==x/y)
{
printf("恭喜你答对了!\n");
printf("\n");cls;
s+=10;break;
}
else
{
printf("很遗憾你答错了!\n");
while(k!=x/y)
{
printf("%d÷%d=",x,y);
scanf("%d",&k);
}
printf("恭喜你答对了!\n");
printf("\n");cls;break;
}
}

void jieshuhoudefen(){
printf("得分:%d\n",s);
printf("\n");
printf("等第:");
if(s>=90)
printf("A");
if(s>=70&&s<80)
printf("B");
if(s>=60&&s<70)
printf("C");
if(s<60)
printf("D");
}[/mw_shl_code]

沙发
 楼主| 发表于 2014-6-26 20:37:14 | 只看该作者
大神快来!!!!!!
板凳
 楼主| 发表于 2014-6-26 20:37:18 | 只看该作者
大神快来!!!!!!大神快来!!!!!!
地板
发表于 2014-6-27 16:02:27 | 只看该作者
#define cls; system("cls")   首先  这个为什么中间要加分号,我没明白,其次你的代码连最起码的缩进  空格等格式都不做  难怪这么多人没人来说话。从你的程序意思上来看  应该是让cls等同于 清屏函数
,拜托 ,好好改改书写模式吧。

点评

插入代码会清楚缩进的……拜托先了解一下啊哈磊网站的特点吧  发表于 2014-7-1 12:16
5#
发表于 2014-6-27 17:44:36 | 只看该作者
给你找几个错误
1
#define cls有问题,宏的定义都是大写

2
清除缓冲区问题

3,其它的都是小小小问题了

6#
发表于 2014-6-28 12:28:34 | 只看该作者
李掌柜 发表于 2014-6-27 17:44
给你找几个错误
1
#define cls有问题,宏的定义都是大写

宏大写只是风格,不是规定⋯⋯
7#
发表于 2014-6-28 12:31:58 | 只看该作者
[mw_shl_code=c,true]#define cls; system("cls")[/mw_shl_code]

这样子定义会把你代码里面的 cls;替换成system("cls")

cls;
srand((unsigned)time(NULL));
就变成了
system("cls")
srand((unsigned)time(NULL));

缺了一个分号,所以通过不了编译

把定义里的分号去掉就行

#define cls system("cls")
8#
 楼主| 发表于 2014-7-1 12:13:58 | 只看该作者
rosynirvana 发表于 2014-6-28 12:31
这样子定义会把你代码里面的 cls;替换 ...

那如果把system("cls")后面也加一个分号行不行?
9#
发表于 2014-7-1 22:19:53 | 只看该作者
LeoGuozichuan 发表于 2014-7-1 12:13
那如果把system("cls")后面也加一个分号行不行?

可以
但是推荐的做法是不要用宏

宏是新手绝对不该去碰的东西
10#
发表于 2014-7-2 10:58:11 | 只看该作者
switch不是要加break的吗?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表