⽤c语⾔编辑⼀句话,C语⾔求每⼀句话的含义..匿名⽤户
1级
2010-12-08 回答
#include "stdio.h"//包含头⽂件,就是编译时候把stdio.h中的内容替换到这个位置。
struct stack//定义结构体stack
{
int length;//定义整型变量length
struct data *top;//定义data类型的指针变量top
};
struct data//定义data结构体
{
char c;//定义字符变量c
struct data *next;//定义data类型指针变量next
};
struct stack *InitStack()//定义函数initstack,函数返回值是stack类型的指针
{
struct stack *p;//定义stack指针p
p=(struct stack *)malloc(sizeof(struct stack));//给p分配内存空间,空间⼤⼩正好够保存⼀个stack数据c语言struct头文件
p->length=0;//给p指向的内存空间赋值
p->top=NULL;//给p指向的内存空间赋值
return p;//返回p的值
}
Push(struct stack *p,char a)//定义函数,函数带两个参数指针p和字符a
{
struct data *t;//定义data类型指针t
t=(struct data *)malloc(sizeof(struct data));//给t分配内存空间
t->next=p->top;//给t指向的data型内存空间赋值
p->top=t;//把t的地址保存到p指向的内存空间中的⼀个变量保存起来
t->c=a;//给t指向的data型内存空间赋值
p->length++;//p指针指向的结构体变量中的length变量+1
return 0;//返回0
}
Pop(struct stack *p,char *a)//定义函数,带两个参数:指针p和字符指针a
{
struct data *t;//定义指针t
t=p->top;//把p中的top变量赋给t
p->top=t->next;//改变p中的top变量值为t中next变量的值
*a=t->c;//改变函数第⼆个参数的值为t中c变量的值
free(t);//释放t指向的内存空间
p->length--;//p中的length变量-1
return 0;//返回0
}
char change(int n)//定义函数,带1个参数,n
{
if(n>9)return 'A'+n-10;//判断,如果n>9则返回英⽂字母表中对应的英⽂字母. return n+'0';//否则返回0
}
main()//⼊⼝函数
{
int n;//定义整数n
char c;//字符c
struct stack *p;//stack类型指针p
p=InitStack();//执⾏函数initstack,返回值给p
scanf("%d",&n);//从键盘输⼊⼀个整数,给n
while(n>0)//循环,如果n⼤于0则继续执⾏,否则跳出循环
{
c=change(n%16);//执⾏change函数,返回值给c
n/=16;//n=n/16
Push(p,c);//执⾏push函数
}
while(p->length!=0)//循环,如果p中保存的length变量不等于0则继续,否则跳出{
Pop(p,&c);//执⾏pop函数
printf("%c",c);//输出c变量中保存的字符
}
return 0;//返回0
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。