自己写的C程序,不知道为什么会这样输出,高的帮看一下!谢谢

lyj8808208 2010-11-19 09:46:53
代码如下:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
main()
{
int num;
num = count(6,0);
printf("player1 score=%d",num);
printf("\n");
getch();
}

int count(int gs,int score)
{

int sz[6];int num[6]={0,0,0,0,0,},score_now;

int *p;
int i;
randomize();
for(i=0;i<gs;i++)
{

sz[i] = random(100)%6 + 1;
if(sz[i] == 1)
{
num[0]++;
}
if(sz[i] == 2)
{
num[1]++;
}
if(sz[i] == 3)
{
num[2]++;
}
if(sz[i] == 4)
{
num[3]++;
}
if(sz[i] == 5)
{
num[4]++;
}
if(sz[i] == 6)
{
num[5]++;
}
printf("%d\t",sz[i]);

}
p = countScore(num,gs,score);
gs = *p;
score = *(p+1);
score_now = *(p+2);
printf("\n score1111:%d\n",score);
printf("score_now1111:%d\n",score_now);
printf("\n gs:%d\n",gs);
if(score_now == 0 || score < 300){
score = 0;

}else{
if(gs > 0) {

count(gs,score);
}
}
printf("return1111:%d\n",score);
return score;
}

int countScore(int num[],int gs,int score1)
{

int tmp = 0,i,ret[3],score_now = 0;
int *p1;

if(num[0] == 6){
score1 += 3000;
score_now += 3000;
num[0] -= 6;
gs -= 6;
tmp += 3000;
}
if(num[0] >0){
score1 += num[0]*100;
score_now += num[0]*100;
tmp += num[0]*100;
gs -= num[0];
num[0] = 0;
}
for(i=1; i<6; i++){
if(num[i] >= 3){
score1 += (i+1)*100;
score_now += (i+1)*100;
num[i] -= 3;
gs -= 3;
tmp += (i+1)*100;
}
}
if(num[4] > 0){
score1 += num[4]*50;
score_now += num[4]*50;
tmp += num[4]*50;
gs -= num[4];
num[4] = 0;
}
ret[0] = gs;
ret[1] = score1;
ret[2] = score_now;
p1 = ret;
return p1;
}


红字的打印语句有时会输出好几个,这是为什么啊?
...全文
146 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyu1998 2010-11-19
  • 打赏
  • 举报
回复
if (gs > 0) count(gs,score);
就是这一句导致的,检查gs的值。
shexinwei 2010-11-19
  • 打赏
  • 举报
回复
自己单步调试吧。你有for循环所以可能会输出多个。
xiaohuh421 2010-11-19
  • 打赏
  • 举报
回复
}else{
if(gs > 0) {

count(gs,score);//你这里递归调用了
}
}
printf("return1111:%d\n",score);
return score;
lyj8808208 2010-11-19
  • 打赏
  • 举报
回复
不是这样,count(gs,score)是调用了,但我那输出语句是连着输出出来的,要是调用了也得打印别的输出语句啊,再说我这输出语句是在return前面,这句完了就return了

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧