c语言入门问题啊,求各位帮帮忙啊,万分紧急啊~~

后缀表达式求值~~帮帮忙啊,自己写了一个程序,实在是查不出问题啊_c语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:240,998贴子:
后缀表达式求值~~帮帮忙啊,自己写了一个程序,实在是查不出问题啊收藏
#include&stdio.h&#include&stdlib.h&typedef struct stackrecord{ int C
int TopOfS
char *A}*SStack createstack(){ S
s=(Stack)malloc(sizeof(struct stackrecord));
s-&Array=(char *)malloc(sizeof(int *)*100);
s-&TopOfStack=-1;
s-&Capacity=100; }char TopAndPop(Stack s){ return s-&Array[s-&TopOfStack--];}int operator_judgement(char c){
if(c=='+'||c=='-'||c=='*'||c=='/')
else return 0;} void push(Stack s,char x){ s-&Array[s-&TopOfStack+1]=x;
s-&TopOfStack+=1;}
char Calculate(){ Sint a,b;
printf("Please enter your expression:\n");
ch=getchar();
while(ch!='=')
{ if(operator_judgement(ch)==1)
{ b=TopAndPop(s)-'0';a=TopAndPop(s)-'0';
switch(ch)
{ case'+':push(s,a+b+48);
case'-':push(s,a-b+48);
case'*':push(s,a*b+48);
case'/':push(s,a/b+48);
else { push(s,ch);}
ch=getchar();
return s-&Array[s-&TopOfStack];}int main(){ S
s=createstack();
printf("%d\n",Calculate()-'0');
return 0;}
你的栈S建立后,但是并没有传递给Calculate这个函数,因此你的栈对Calculate不可见。
懂了~~谢谢!
登录百度帐号我的游戏推荐游戏
后查看最近玩过的游戏
使用签名档&&
为兴趣而生,贴吧更懂你。或求高手帮忙做一下这个C语言题目万分感谢_百度知道
求高手帮忙做一下这个C语言题目万分感谢
编写程序,求3~100之间的所有素数之和
高手帮忙的相关知识
等待您来回答
您可能关注的推广回答者:回答者:
下载知道APP
随时随地咨询
出门在外也不愁各位大侠帮帮忙,小弟遇到点问题,求帮助,用C语言编写单片机程序_百度知道
各位大侠帮帮忙,小弟遇到点问题,求帮助,用C语言编写单片机程序
单片机的RXD接收到信号1,与89c52P0.0~P0.7口相连的lm016l加一,同时6秒后,p1.0输出高电平,P1.1输出低电平,当单片机的rxd接收到信号0时,LM016L不变,6秒后,P1.0输出低电平,P1.1输出高电平,按下接于rst的按钮,显示器清屏,从0开始。LM016L的RS、RW、E端分别与AT89C52的P2.0/P2.1/P2.2端口相连,D0~D7与单片机P0.0~P0.7相连,单片机的RXD端口是P3.0,RST端口接的是复位按钮。初始时 LM016L示数为0
提问者采纳
#include&reg52.h&#define uchar unsigned char#define uint unsigned intsbit lcden=P2^2;sbit lwr=P2^1;sbit lrs=P2^0;sbit rxd=P3^0;sbit P1_0=P1^0;sbit P1_1=P1^1;void delay(uint sec)
//延时函数{
for(i=i&0;i--)
for(j=110;j&0;j--);
}void write_com(uchar com)
//写命令{ lrs=0; P0= delay(5); lcden=1; delay(5); lcden=0; }void write_data(uchar
//写数据{ lrs=1; P0= delay(5); lcden=1; delay(5); lcden=0;}void init()
//初始化{ lcden=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01);}void write_num(uint addr,uint num)
//显示数字{ write_com(0x80+addr); write_data(num);}void main(){ init(); write_num(10,num); while(1) {
if(rxd==1)
write_num(10,num);
delay(6000);
if(rxd==0)
delay(6000);
怎么仿真不出来啊?大侠,有没有需要补充的地方啊?
提问者评价
虽然不能用,第一时间回复,把分给你吧,也特别感谢第二位回复的网友,谢谢!
其他类似问题
c语言的相关知识
按默认排序
其他1条回答
功能相近的 仿真实例 供参考,修改一下吧。
这个悬殊有点大吧,能不能帮忙改成我提问的问题答案,谢谢
意思已经差不了 多少了,你只要把图上
改一下 按照你要求 的 连接,程序 的 定义 也 相应 改一下 就可以了。
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁用C语言写图书管理系统设计
求各位大哥大姐帮帮忙啊!跪求!!!!_百度知道
用C语言写图书管理系统设计
求各位大哥大姐帮帮忙啊!跪求!!!!
《内容》该系统能实现图书馆管理的一般功能,包括读书信息录入、修改、删除、查询功能。要有图书借阅信息(借出、归还)的修改,系统能够提供时间段、时间的查询,并提供统计功能至少包括按时间段统计,将查询、统计的结果打印输出。【提示】(1)用一个文件存放图书信息。(2)图书信息包括图书编号、书名、出版社、作者、ISBN号、单价等。(3)图书的借阅信息包括图书编号、状态、借出时间、归还时间等。(4)程序运行后首先打印一个菜单:N录入;D删除;B查询;S统计输出;Q退出。(5)考虑利用函数调用,编写main函数进行演示。题目就是上面这些啦,求求各位大哥大姐们帮下小弟的忙,小弟感激不敬!
还有流程图
大哥,流程图啊!!!!
提问者采纳
#include&stdio.h& #include&string.h& #include&conio.h& #include&stdlib.h& #include&ctype.h& #define STACK_INIT_SIZE 10 #define OK 1 #define TRUE 1 #define FALSE 0 #define ERROR 0struct student /*定义学生类型,用于存放借出的书籍*/ {
char lendbook[10]; }student[1000];struct employ /*定义职工类型*/ {
char employname[15];
char employsex[2]; char employleve[10];
}employ[50];struct book /*定义书的类型*/ {
char bookname[10]; char bookcreat[10];
/*用于借书和还书模块判断一本书是否借出的条件*/ }book[1000];struct car /*借书卡的数据类型*/ {
char studentname[10];
}car[100];huanbook() /*还书函数*/ { FILE *fp,*fp2; /*定义两个文件指针,fp2用于修改数据时设立临时文件用,防止数据遭破坏*/ int i,n;
char lendbook[10]; printf(&请你输入你的卡号\n&); scanf(&%d&,&carnum); fp=fopen(&car.txt&,&r&); /*读取卡号记录*/ for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++) /*for循环判断卡号是否存在*/ {
if(car[i].carnum==carnum) /*卡号存在,进入下一循环*/
fclose(fp);
printf(&请输入你要还的书的名字\n&);
scanf(&%s&,lendbook);
fp=fopen(&record.txt&,&r&);
for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++) /*判断是否借阅了输入的书*/
if(strcmp(student[i].lendbook,lendbook)==0) /*借阅了该书,进入下一循环,否则出错显示*/
fclose(fp);
fp=fopen(&record.txt&,&r&);
fp2=fopen(&bookl.txt&,&w&);
for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++)
if(strcmp(student[i].lendbook,lendbook)==0)
/*删除还掉的书的借书记录*/
fwrite(&student[i],sizeof(struct student),1,fp2); /*写入原来没还的书的记录*/
fclose(fp);
fclose(fp2);
fp=fopen(&record.txt&,&w&);
fp2=fopen(&bookl.txt&,&r&);
for(i=0;fread(&student[i],sizeof(struct student),1,fp2)!=0;i++)
fwrite(&student[i],sizeof(struct student),1,fp); /*将借书记录信息写回*/
fclose(fp);
fclose(fp2);
fopen(&bookl.txt&,&w&); /*清临时文件的记录*/
fclose(fp2);
fp=fopen(&book.txt&,&r&);
fp2=fopen(&bookl.txt&,&w&);
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++) /*将书的记录写入临时文件,防止因为修改信息破坏以前的记录*/
book[i].turefalse=1;
fwrite(&book[i],sizeof(struct book),1,fp2); /*将还的书的原来状态设为无人借阅的*/
fwrite(&book[i],sizeof(struct book),1,fp2);
fclose(fp);
fclose(fp2);
fp=fopen(&book.txt&,&w&);
fp2=fopen(&bookl.txt&,&r&);
for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++)
fwrite(&book[i],sizeof(struct book),1,fp); /*将临时文件写回*/
fclose(fp);
fclose(fp2);
fopen(&bookl.txt&,&w&); /*清临时文件*/
fclose(fp2);
printf(&还书完毕,按任意键返回\n&);
printf(&你没有借这样的书,任意键返回\n&); /*出错提示*/
fclose(fp);
} } printf(&系统没这样的卡,和管理员联系,按任意键返回\n&); /*出错提示*/ fclose(fp); getch(); }findbook(){ FILE * char bookname[10]; int ture,i; fp=fopen(&book.txt&,&r&); printf(&请输入你要查找的书名\n&); scanf(&%s&,bookname); for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++) {
if(strcmp(bookname,book[i].bookname)==0)
if(book[i].turefalse==1)
printf(&这本书的详细资料是:%d %s %s 此书现在无人借阅\n按任意键返回\n&,book[i].booknum,book[i].bookname,book[i].bookcreat);
else {printf(&这本书已经有人借出\n&);fclose(fp);return 0;}
fclose(fp);
return FALSE;
} } printf(&没有你要查询的书籍\n&); fclose(fp); return FALSE; }findbook1(){ FILE * char bookcreat[10]; int ture,i; fp=fopen(&book.txt&,&r&); printf(&请输入你要查找的作者名\n&); scanf(&%s&,bookcreat); for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++) {
if(strcmp(bookcreat,book[i].bookcreat)==0)
if(book[i].turefalse==1)
printf(&这本书的详细资料是:%d %s %s 此书现在无人借阅\n按任意键返回\n&,book[i].booknum,book[i].bookname,book[i].bookcreat);
else {printf(&这本书已经有人借出\n&);fclose(fp);return 0;}
fclose(fp);
return FALSE;
} } printf(&没有你要查询的书籍\n&); fclose(fp); return FALSE; }lendcount() { FILE * int i,n=0; fp=fopen(&record.txt&,&r&); for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++) {
printf(&卡号:%d 借出的书籍:%s \n&,student[i].carnum,student[i].lendbook);
n=n+1; } fclose(fp); printf(&目前共有%d本书借出\n&,n); printf(&按任意键\n&); getch(); }chabook() { char ch5; do { printf(&---------------欢迎进入图书查询系统!--------------\n&); printf(& 1:&按书名查找&\n&); printf(& 2:&按作者查找&\n&); printf(& 0:&返回&\n&); printf(&请输入0--2,其他输入非法!\n&); scanf(&%s&,&ch5); switch(ch5)
case '1':findbook();getch();
case '2':findbook1();getch();
case '0':
default:printf(&无此操作\n&);getch();
} }while(ch5!='0');return FALSE; }lendbook() { FILE *fp,*fp2; int i,n;
printf(&请你输入你的卡号\n&); scanf(&%d&,&carnum); fp=fopen(&car.txt&,&r&); for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++) {
if(car[i].carnum==carnum)
fclose(fp);
printf(&请输入你要借阅的书的名字\n&);
scanf(&%s&,student[n].lendbook);
fp=fopen(&book.txt&,&r&);
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
if(strcmp(book[i].bookname,student[n].lendbook)==0)
if(book[i].turefalse==0) {printf(&对不起,此书有人借出,请借其他书\n&);fclose(fp);getch();}
fclose(fp);
fp=fopen(&record.txt&,&a+&);
student[n].carnum=
fwrite(&student[n],sizeof(struct student),1,fp);
fclose(fp);
fp=fopen(&book.txt&,&r&);
fp2=fopen(&bookl.txt&,&w&);
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
if(strcmp(book[i].bookname,student[n].lendbook)==0)
book[i].turefalse=0;
fwrite(&book[i],sizeof(struct book),1,fp2);
fwrite(&book[i],sizeof(struct book),1,fp2);
fclose(fp);
fclose(fp2);
fp=fopen(&book.txt&,&w&);
fp2=fopen(&bookl.txt&,&r&);
for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++)
fwrite(&book[i],sizeof(struct book),1,fp);
fclose(fp);
fclose(fp2);
fopen(&bookl.txt&,&w&);
fclose(fp2);
printf(&借书完毕,按任意键返回\n&);
printf(&不存在这样的书,任意键返回\n&);
fclose(fp);
} } printf(&你的卡号不存在,请申请新卡,按任意键返回\n&); fclose(fp); getch(); }carcount() { FILE * int i,n=0; fp=fopen(&car.txt&,&r&); for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++) {
printf(&第%d张卡&卡号:%d 姓名:%s 班级:%d&\n&,i+1,car[i].carnum,car[i].studentname,car[i].studentclass);
n=n+1; } fclose(fp); printf(&目前共有%d本书\n&,n); printf(&按任意键\n&); getch(); }delcar() { FILE *fp,*fp2;
fp=fopen(&car.txt&,&r&); fp2=fopen(&bookl.txt&,&w&); printf(&请输入你要删除的卡号\n&); printf(&如果你输入的卡号存在,系统自动删除该信息!如果不存在,系统不做任何改动\n&); scanf(&%d&,&carnum); for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++) {
if(car[i].carnum!=carnum)
fwrite(&car[i],sizeof(struct car),1,fp2);
} } fclose(fp); fclose(fp2); printf(&是否真的要删除该卡?删除后该书籍的所有信息将无法恢复《Y/N》\n&); scanf(&%s&,&choice); if(choice=='y'||choice=='Y') {
fp=fopen(&car.txt&,&w&);
fp2=fopen(&bookl.txt&,&r&);
for(i=0;fread(&car[i],sizeof(struct car),1,fp2)!=0;i++)
fwrite(&car[i],sizeof(struct car),1,fp);
fclose(fp);
fclose(fp2);
fp2=fopen(&bookl.txt&,&w&);
fclose(fp2);
printf(&按任意键返回\n&);
printf(&按任意键返回\n&);
} }addcar() { FILE * int i=0; fp=fopen(&car.txt&,&a+&); printf(&请你输入卡号\n&); scanf(&%d&,&car[i].carnum); printf(&请你输入学生姓名\n&); scanf(&%s&,car[i].studentname); printf(&请你输入班级\n&); scanf(&%d&,&car[i].studentclass); fwrite(&car[i],sizeof(struct car),1,fp); fclose(fp); printf(&输入完毕,任意键返回\n&); getch();
提问者评价
这位大哥谢啦!
其他类似问题
图书管理系统的相关知识
按默认排序
其他2条回答
一窍不通。
那位大哥回答的绝。。。一点错误没有。。厉害
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 c语言入门 的文章

 

随机推荐