Midsummer.747 2022-09-28 12:55 采纳率: 71.4%
浏览 27
已结题

定义的s栈好像出错了是数制转换

img


下面是部分代码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define MAXSIZE 100
int exitflag = 1;
typedef int status;
//typedef struct SElemType;
typedef struct StackNode
{
int data;
struct StackNode *next;
}StackNode,*LinkStack;
status Initstack(LinkStack &S);//初始化链栈
status Pushstack(LinkStack &S,int n);//入栈
status Popstack(LinkStack &S);//出栈
status EmptyStack(LinkStack S);//判断栈是否为空
void Conversion(LinkStack &S,int n,int m);//数制转换函数
void PrintMenu();
void Menu(int choice);
void Quit();

//主函数
int main()
{
int m,n;
int choice;
LinkStack S;
//Initstack(S); //初始化链栈
do
{
PrintMenu();
scanf("%d", &choice);
Menu(choice);
} while (exitflag); //实现菜单功能
return 0;
}
//初始化函数
status Initstack(LinkStack &S)
{S=NULL;
return 1;
}
//入栈函数
status Pushstack(LinkStack &S,int n)
{
int i;
LinkStack p;
p=new StackNode;
p->data=n;
p->next=S;
S=p;
return 1;
}
//出栈函数
status Popstack(LinkStack &S)
{LinkStack p;
if(S=NULL)
return 0;
p=S;
S=S->next;
return p->data;
}
//判空函数
status EmptyStack(LinkStack S)
{
if(S=NULL)
return 1;
else
return 0;
}
//输出菜单
void PrintMenu()
{
printf("\n");
printf("进制转换\n");
printf("1.输入一个十进制数n\n");
printf("2.输入转换的进制m\n");
printf("3.进制转换\n");
printf("4.继续或退出(y/n)\n");
printf("请选择1-4:");
}
//菜单内容
void Menu(int choice)
{
switch (choice) {
case 1:
int m,n;
printf("请输入十进制数n:");
scanf("%d",&n);
break;
case 2:
printf("请输入转换的进制m:");
scanf("%d",&m);
break;
case 3:
Conversion(S ,n ,m );
break;
case 4:
Quit();
break;
default:
printf("输入错误请重新输入\n");
break;
}
}
//退出
void Quit()
{
printf("是否确认退出程序\n");
printf("继续请输入N or n\n");
char c;
getchar(); //吸收缓存区多余字符
c = getchar();
if ( c == 'y') {
exitflag = 0;
}
else {
if (c == 'n') {
exitflag = 1;

img

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-09-28 13:10
    关注

    S是main函数里的变量,不是Menu函数里的变量,所以不认识啊
    要么Menu函数也加个S变量参数,要么将S变量放到main函数外边,变为全局变量。建议给Menu加个参数

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月1日
  • 已采纳回答 9月28日
  • 修改了问题 9月28日
  • 修改了问题 9月28日
  • 展开全部

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么