免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1559 | 回复: 5
打印 上一主题 下一主题

请大哥,大姐帮个忙,看看啊 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-30 10:27 |只看该作者 |倒序浏览
为什么这个程序,运行后,显示的是无限循环
#include<iostream.h>
#define MAXLENGTH 1024
typedef struct
{
   int   data[MAXLENGTH];
int rear,front;
int num;
}c_SeQueue;

int Init_SeQueue(c_SeQueue **q)
{
if((*q)=new(c_SeQueue)) return 0;
(*q)->front=MAXLENGTH;
(*q)->rear=MAXLENGTH;
(*q)->num=0;
return 1;
}

int In_SeQueue(c_SeQueue *q,int x)
{
if(q->num==MAXLENGTH)
{
  cout<<"队满";
     return -1;
}
else
{
  q->rear=(q->rear+1)%MAXLENGTH;
  q->data[q->rear]=x;
  q->num++;
  return 1;
}
}

int out_SeQueue(c_SeQueue *q,int *x)
{
if(q->num==0)
{
  cout<<"队空";
     return -1;
}
else
{
  q->front=(q->front+1)%MAXLENGTH;
  *x=q->data[q->front];
  q->num--;
  return 1;
}
}


int Empty_SeQueue(c_SeQueue *q)
{
if(q->num==0) return 1;
else return 0;
}
void conversion(double n,int r)
{
//  double n;
  int  X,N,M;
  double  y,m;
  N=n;
  y=n-N;
  
  c_SeQueue *q;
  Init_SeQueue(&q);
while(y!=0)
{
m=y*r;
    M=m;
y=m-M;
int i=0;
if(i<9)
{
   In_SeQueue(q,M);
   i++;
}
else
  break;
}
while(!Empty_SeQueue(q))
{
out_SeQueue(q, &X);
  if(M>=10)
{ switch(X)
  {
  case 10: cout<<'A'; break;
  case 11: cout<<'B'; break;
  case 12: cout<<'C'; break;
  case 13: cout<<'D'; break;
  case 14: cout<<'E'; break;
  case 15: cout<<'F'; break;
  }
  }
  else
   cout<<X;
}
  cout<<endl;
}
void main()

{
  double n;
  int r;
  cout<<"请输入您要转化的数及想要转化为几进制:"<<endl;
  cin>>n>>r;
  cout<<"转化结果为:"<<endl;
  conversion(n,r);
}

[ 本帖最后由 crazy4444 于 2008-11-30 12:08 编辑 ]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2008-11-30 11:32 |只看该作者
怎么有些代码是乱码?

论坛徽章:
1
天蝎座
日期:2013-08-25 10:27:22
3 [报告]
发表于 2008-11-30 11:42 |只看该作者

回复 #2 lenovo 的帖子

乱码的是其他字体,不影响程序。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2008-11-30 11:46 |只看该作者
原帖由 yangsf5 于 2008-11-30 11:42 发表
乱码的是其他字体,不影响程序。

但影响理解程序。
既然要寻求别人的帮助,
那最好是尽量多的提供信息。

论坛徽章:
1
天蝎座
日期:2013-08-25 10:27:22
5 [报告]
发表于 2008-11-30 11:58 |只看该作者

回复 #4 lenovo 的帖子

呵呵。初看,还以为是少量代码呢。如果是少量,几个乱码还是不妨碍的。

但是楼主还是把乱码的字给换好吧。看了下,代码多了点,费时间。

论坛徽章:
0
6 [报告]
发表于 2008-11-30 17:11 |只看该作者
if ( ( *q ) =new ( c_SeQueue ) ) return 0; ??
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP