回文问题:检测并输出一个文档中的回文单词。(要求用栈和队列实现) 65

用C++语言编写最好分三段如b.hb.cppmain.cpp要求用栈和队列编啊... 用C++语言编写
最好分三段 如b.h b.cpp main.cpp
要求用栈和队列编啊
展开
 我来答
wnxne60
2010-11-27 · TA获得超过344个赞
知道答主
回答量:390
采纳率:0%
帮助的人:306万
展开全部
用visual basic6.0 计算回文数
for i = 100 to 99999 '这里从100开始 后面可以随便填,我这里填99999 表示所有3位数到五位数之间的回文数
if StrReverse(i)=i then print i '用StrReverse函数 判断倒序后的数和原来数是否相同,如果相同者表示此数为回文数 next

用C语言编程计算回文数

#include<stdio.h>
int x,y;
judge(int * data,int len)
{
int i,j,f=0;
for(i=0,j=len-1; i<=j; i++,j--)
{
if(*(data+i)!=*(data+j))
{
f=1; printf("%d 不是回文!!!\n",x); break;
}
}
if(f==0)
printf("%d 是回文 !\n",x);
}
separate(int *data,int n)
{
int j,k,t;
y=0;
while(n!=0)
{
*(data+y)=n%10; n=n/10; y++;
}
*(data+y)='\0';
for(j=0,k=y-1; j<=k; j++,k--)
{
t=*(data+j); *(data+j)=*(data+k); *(data+k)=t;
}
}
void main()
{
int a[99];
printf("请输入一个正整数:");
scanf("%d",&x);
separate(a,x);
judge(a,y);
},y); }
lsw13
2010-12-07 · TA获得超过283个赞
知道小有建树答主
回答量:98
采纳率:0%
帮助的人:89.4万
展开全部
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include "FileHuiwen.h"
// FileHuiwen.cpp---------------------------------------------------
int main()
{
// 读入文档,文档放在工程目录中生成EXE文件的路径下
// 文档中录入字符并保存,录入一行不换行
FILE *fp = fopen("words.txt","r");
char word[50];
int i = 0;
fgets(word,20,fp);
printf("%s\n",word);
printf("length = %d\n",strlen(word));
// 新建两个栈
STACKLIST list1;
STACKLIST list2;

NewStackList(&list1);
NewStackList(&list2);
// 先将所有字符压入栈1
while( word[i] != '\0')
{
PushStackList(&list1,word[i++]);
}
i = 0;
// 栈1出栈一半的字符压入栈2
while( i < strlen(word)/2 )
{
PushStackList(&list2,PopStackList(&list1));
i ++;
}
// 如果字符串为奇,将栈1顶出栈,保证栈1栈2字符数相等
if ( strlen(word)%2 != 0)
{
PopStackList(&list1);
}
// 栈1和栈2出栈比较
for ( i = 0; i < strlen(word)/2; i ++ )
{
if ( PopStackList(&list1) != PopStackList(&list2) )
{
printf("不是回文\n");
break;
}
}
if ( i == strlen(word)/2 )
{
printf("是回文\n");
}
// 释放所有节点
FreeStackNode(&list1);
FreeStackNode(&list2);
// 关闭文件
fclose(fp);

}
// 新建栈
void NewStackList(LPSTACKLIST list)
{
if ( list == NULL ) return;
list->top = NULL;
list->size = 0;
}
// 新建栈节点
void FreeStackNode(LPSTACKLIST list)
{
if ( list == NULL ) return;
LPSTACKNODE iterNode = list->top;
while( iterNode != NULL )
{
free(iterNode);
iterNode = iterNode->next;
}
list->top = NULL;
list->size = 0;
}
// 圧栈
void PushStackList(LPSTACKLIST list,char data)
{
if ( list == NULL ) return;
LPSTACKNODE node = (LPSTACKNODE)malloc(sizeof(STACKNODE));
node->data = data;
node->next = list->top;
list->top = node;
list-> size++;
}
//出栈
char PopStackList(LPSTACKLIST list)
{
if ( list == NULL ) return -1;
if ( list->size == 0 ) return -1;
LPSTACKNODE currNode = list->top;
char returnValue = currNode->data;
list->top = currNode->next;
list->size --;
free(currNode);
return returnValue;
}
--------------------------------------------------------------
// FileHuiwen.h-------------------------------------------
#ifndef APP_H
#define APP_H
// 定义栈节点
struct StackNode
{
int data;
StackNode *next;
};
typedef StackNode STACKNODE;
typedef StackNode* LPSTACKNODE;
// 定义栈
struct StackList
{
LPSTACKNODE top;
int size;
};

typedef StackList STACKLIST;
typedef StackList* LPSTACKLIST;

void NewStackList(LPSTACKLIST list);
void FreeStackNode(LPSTACKLIST list);

void PushStackList(LPSTACKLIST list,char data);
char PopStackList(LPSTACKLIST list);

#endif

亲手写的一个,并在CFree 5.0下调试成功,希望能有所帮助,不懂的随时HI我。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
歧花纳和玉
2020-07-09 · TA获得超过3901个赞
知道大有可为答主
回答量:3134
采纳率:32%
帮助的人:163万
展开全部
问题补充:用C++语言编写最好分三段
如b.h
b.cpp
main.cpp
要求用栈和读入文档,文档放在工程目录中生成EXE文件的路径下
//
文档中录入字符并保存
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式