| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 658 人关注过本帖
标题:程序无法运行,求C大神过目
只看楼主 加入收藏
MacWhite
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-1-18
结帖率:0
收藏
已结贴  问题点数:20 回复次数:6 
程序无法运行,求C大神过目
本人小菜,写这道题,但程序无法运行,望高人指教,不胜感激。http://cogs.yeefan.us/cogs/problem/problem.php?pid=1554
#include<stdio.h>
#include<string.h>
struct card{
    char suit;
    char rank;
};
card pile[52][52];
int main()
{
    while(1)
 {
     int top[52];
  int i;
  char temp[2];
  memset(top,0,sizeof(top));
  scanf("%s",temp);
  if(temp[0]=='#') return 0;
  pile[0][top[0]].rank=temp[0];
  pile[0][top[0]++].suit=temp[1];
  for(i=1;i<52;i++)
  {
   scanf("%s",temp);
  pile[i][top[i]].rank=temp[0];
     pile[i][top[i]++].suit=temp[1];
  }
  int able = 1;
  while(able)
  {for(i=0;i<52;i++)
  {int k = 0;
  able = 0;
  if(top[i] == 0)
  {k++;
   continue;
  }
  printf("%c",pile[i-3-k][top[i-3-k]].suit);
  if(pile[i][top[i]].suit == pile[i-3-k][top[i-3-k]].suit || pile[i][top[i]].rank == pile[i-3-k][top[i-3-k]].rank)
  {top[i-3-k]++;
  pile[i-3-k][top[i-3-k]] = pile[i][top[i]];
  top[i]--;
  able++;
  break;
  }
  if(pile[i][top[i]].suit == pile[i-1-k][top[i-1-k]].suit || pile[i][top[i]].rank == pile[i-1-k][top[i-1-k]].rank)
  {
      top[i-1-k]++;
       pile[i-1-k][top[i-1-k]] = pile[i][top[i]];
  top[i]--;
  able++;
  break;   
  }
  }
 }
 int output[52];
 int count = 0;
 for(i=0;i<52;i++)
 {
     if(top[i] != 0)
     output[count++] = top[i];
 }
 if(count - 1 == 1)
     printf("1 pile remaining: 52");
 else
 {
     printf("%d piles remaining:",count - 1);
     for(i = 0;i<=count-1;i++)
     printf(" %d",output[i]);
 }
}
return 0;
}
搜索更多相关主题的帖子: 不胜感激 include problem return 
2015-01-18 20:41
潇湘书生
Rank: 2
等 级:论坛游民
威 望:1
帖 子:23
专家分:89
注 册:2014-12-9
收藏
得分:4 
唉,你也不说明程序的目的,代码比较长要是注释下该有多好
2015-01-18 20:48
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:4 
同意楼上,没仔细看,不过目测memset是c++中的函数吧

一片落叶掉进了回忆的流年。
2015-01-18 21:46
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:4 
没什么提示吗
2015-01-18 22:52
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:4 
以下是引用诸葛欧阳在2015-1-18 21:46:10的发言:

同意楼上,没仔细看,不过目测memset是c++中的函数吧

在string.h里

  void * __cdecl memset(void *_Dst,int _Val,size_t _Size);

有这个函数的


2015-01-18 22:56
执笔画江山
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:265
专家分:1010
注 册:2015-1-13
收藏
得分:4 
card pile[52][52];改为 struct card pile[52][52];试试。

授人以鱼,不如授人以渔
2015-01-19 15:08
biu_biu_biu
Rank: 2
等 级:论坛游民
帖 子:5
专家分:10
注 册:2015-1-19
收藏
得分:4 
大哥 你的top数组没有赋值就开始调用了 还有声明结构体变量时要在前面加struct 表示这个是结构体类型
2015-01-20 17:07
快速回复:程序无法运行,求C大神过目
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017775 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved