C语言程序调试,编译的结果总是说我的变量S没有初始化,但是我怎么改都是这个错误,请高手指点一二。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言程序调试,编译的结果总是说我的变量S没有初始化,但是我怎么改都是这个错误,请高手指点一二。相关的知识,希望对你有一定的参考价值。
#include<stdio.h>
#define MAXSIZE 100
typedef struct //建立一个链表
char d[MAXSIZE];
int top;
*stack;
stack inistack(stack s)//建立一个空栈
s->top=-1;return s;
int pushstack(stack s,char e )//元素进栈
if(s->top>=MAXSIZE-1)return 0;
else s->top++;s->d[s->top ]=e; return 1;
int popstack(stack s)//元素出栈
char e;
if(s->top ==-1)return 0;
else e=s->d[s->top ];s->top--;return e;
int char_to_num(char ch)//将符号转换为数字,比如A=10
if(ch>='0'&&ch<='9')return ch-'0';
else return ch-'A' +10;
char num_to_char(int num)//将数字转换为字符,比如将10变成A
if(num>=0&&num<=9)return (char)('0'+num-0);
else return(char)('A'+num-10);
long source_to_decimal(char temp[],int source)//将原始数据转换为十进制的数据
long decimal_num=0;
int length,i;
for (i=0;temp[i]!='\0';i++)
length=i;
for(i=0;i<=length-1;i++)
decimal_num=(decimal_num*source)+char_to_num(temp[i]);
return decimal_num;
void decimal_to_object(stack s,long decimal_num,int object)
while(decimal_num)pushstack(s,num_to_char(decimal_num%object));
while (s->top !=-1)printf("%d",popstack(s));
void main()
stack s=0000;
int source; /*存储原数制*/
int object; /*存储目标数制*/
long decimal_num; /*存储转换成的10进制数*/
char temp[MAXSIZE]; /*存储待转换的数值*/
int flag=1; /*存储是否退出程序的标志*/
s=inistack(s);
printf("你好\n");
while(flag)
printf("转换前的数是:\n");
scanf("%s",temp);
printf("转换前的数制是:\n");
scanf("%d",&source);
printf("转换后的数制是:\n");
scanf("%d",&object);
printf("转换后的数是:\n");
decimal_num=source_to_decimal(temp,source);
decimal_to_object( s, decimal_num, object);
printf("继续请输入1,否则输入0:\n");
scanf("%d",&flag);
printf("再见\n");
stack s=0000;这一步应该是错的,编译说没有初始化,这是我是这初始化的操作
char d[MAXSIZE];
int top;
*stack;
不是很理解你这样定义,我感觉应该直接typedef成stack 参考技术B s是指向结构体的指针,不能那样赋值。追问
这个S怎么初始化啊?我怎么改都是出错
参考技术C sdsadffgdsfdcxgvdsfgvfchnmj以上是关于C语言程序调试,编译的结果总是说我的变量S没有初始化,但是我怎么改都是这个错误,请高手指点一二。的主要内容,如果未能解决你的问题,请参考以下文章