百韵网 >>  正文

求一个C语言算术表达式求值程序 C语言编一个实现简单的算术表达式求值的代码。

来源:www.baiyundou.net   日期:较早时间
我的能运行!!但表达式末尾加要加#
例如2+3要打2+3#
#include<cstdio>
#include<malloc.h>
#define NULL 0
typedef struct node{
char date;
struct node *next;
}SNode;

SNode *InitStack(){
SNode *top;
top=(SNode *)malloc(sizeof(SNode));
top->next=NULL;
return top;
}
void PushOptr(SNode *top,char x){
SNode *p;
p=(SNode *)malloc(sizeof(SNode));
p->date=x;
p->next=top->next;
top->next=p;

}
char PopOptr(SNode *top){
SNode *p;
char x;
if(top==NULL)
return NULL;
p=top->next;
x=p->date;
top->next=p->next;
free(p);
return x;
}
void PushOpnd(SNode *top,char x){
SNode *p;
p=(SNode *)malloc(sizeof(SNode));
p->date=x;
p->next=top->next;
top->next=p;
}
char PopOpnd(SNode *top){
SNode *p;
char x;
if(top==NULL)
return NULL;
p=top->next;
x=p->date;
top->next=p->next;
free(p);
return x;
}
char GetTop(SNode *top){

return (top->next)->date;
}
int In(char c){
int n;
switch(c){
case '+':
case '-':
case '*':
case '/':
case '(':
case ')':
case '#':n=1;break;
default:n=0;break;
}
return n;
}
char Precede(char x,char y){
int i,j;
int form[7][7]={{1,1,-1,-1,-1,1,1},{1,1,-1,-1,-1,1,1},{1,1,1,1,-1,1,1},{1,1,1,1,-1,1,1},{-1,-1,-1,-1,-1,0,2},{1,1,1,1,2,1,1},{-1,-1,-1,-1,-1,2,0}};
switch(x){
case '+':i=0;break;
case '-':i=1;break;
case '*':i=2;break;
case '/':i=3;break;
case '(':i=4;break;
case ')':i=5;break;
case '#':i=6;break;
}
switch(y){
case '+':j=0;break;
case '-':j=1;break;
case '*':j=2;break;
case '/':j=3;break;
case '(':j=4;break;
case ')':j=5;break;
case '#':j=6;break;
}
if(form[i][j]==1)
return '>';
else
if(form[i][j]==-1)
return '<';
else
return '=';

}
int Operate(char x,char z,char y){
int a=x-'0',b=y-'0';
switch(z){
case '+':return a+b;
case '-':return a-b;
case '*':return a*b;
case '/':return a/b;
}
}
char Eval_Exp(){
char a,b,c,r,f,z;
int result;
SNode *top[2];
top[0]=InitStack();
PushOptr(top[0],'#');
top[1]=InitStack();
c=getchar();
while(c!='#'||(GetTop(top[0]))!='#'){
if(!In(c)){
PushOpnd(top[1],c);
c=getchar();
}
else{
r=Precede(GetTop(top[0]),c);
switch(r){
case '<':PushOptr(top[0],c);
c=getchar();
break;
case '=':PopOptr(top[0]);
c=getchar();
break;
case '>':b=PopOptr(top[0]);
a=PopOpnd(top[1]);
z=PopOpnd(top[1]);
result=Operate(z,b,a);
f=result+'0';
PushOpnd(top[1],f);
break;
}

}
}
return f;
}
void main(){
char result;
result=Eval_Exp();
printf("%d\n",result-'0');

}

/* 此 程序的功能是求出用户输入的整形表达式(可以是多位数的)的值20-10-07 17:43*/

#include <stdio.h>
#define MAXSIZE 16

typedef struct{
int data[MAXSIZE];
int top;
int base;
}seqstack; /* 顺序栈的定义*/
/*以下为函数声明*/
void InitStack(seqstack *);
int Empty(seqstack *);
void Push(seqstack *, int );
int Pop(seqstack *);
int GetTop(seqstack *);
int Operate(int ,char ,int );
char Proceed(char ,char );
int In(char );
int EvalExpres(void);
/* 定义两个栈分别存放运算符和操作数*/
seqstack StackR,StackD;
/*主函数*/
int main()
{
int v;
char ch;
while(1)
{
printf("\t@@@@@@@@本程序的功能为:用顺序栈实现整型算术表达式的求值@@@@@@@@\n");
printf("\t@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-20-10-07 17:47-@@@@@@\n");
v = EvalExpres();
printf("The result is:%d",v);
/*以下为程序控制*/
printf("\nInput 'q' to quit and ENTER run again:");
do{
scanf("%c",&ch);
if(ch == 'q' || ch == 'Q')
exit(0);
}while(ch!='\n');
system("cls");
}
return 0;
}

void InitStack(seqstack *s)
{ s->top = 0;
s->base = 0;
} /* 初始化栈*/

int Empty(seqstack *s)
{ if(s->top == s->base)
return 1;
else
return 0;
} /* 判断栈是否为空*/

void Push(seqstack *s, int x)
{
if(s->top == MAXSIZE)
{ printf("OVER FLOW!\n");
exit(0);
}
else
{ s->data[s->top] = x;
s->top++;
}
} /* 进栈 */

int Pop(seqstack *s)
{ int e;
if(Empty(s))
{ printf("Under flow!\n");
return 0;
} /* 下溢*/
else
{ s->top--;
e = s->data[s->top];
return e;
}
} /* 出栈*/

int GetTop(seqstack *s) /*取栈顶元素*/
{
if(Empty(s))
{ printf("Under flow!\n");
return 0;
}
else
return s->data[s->top-1];
}

int EvalExpres(void) /* 表达式求解函数*/
{
int a,b,i=0,s=0;
char c[80],r;
InitStack(&StackR);
Push(&StackR,'#');
InitStack(&StackD);
printf(" 请输入表达式并以‘#’结束:");
gets(c);
while(c[i]!='#' || GetTop(&StackR)!='#')
{
if(!In(c[i])) /* 判断读入的字符不是运算符 是则进栈*/
{ if(c[i] >= '0' && c[i] <= '9')
{
s += c[i]-'0';
while(!In(c[++i])) /*此处实现的功能为当输入的数字为多位数时*/
{ s*=10;
s += c[i]-'0';
}
Push(&StackD,s+'0');
s = 0;
}
else
{
printf("你输入的表达式有误!\n");
return 0;
}
}
else
switch(Proceed(GetTop(&StackR),c[i])) /* 此函数用来比较读取的运算符和栈顶运算符的优先级*/
{
case '<': /* 栈顶的元素优先级高*/
Push(&StackR,c[i]);
i++;
break;
case '=': /* 遇到匹配的小括号时则去掉他*/
Pop(&StackR);
i++;
break;
case '>': /* 栈顶的优先级低则出栈并将结果写入栈内*/
r = Pop(&StackR);
a = Pop(&StackD)-'0';
b = Pop(&StackD)-'0';
Push(&StackD,Operate(a,r,b)) ;
break;
}
}
return (GetTop(&StackD)-'0'); /* 返回运算结果*/
}

int In(char c) /*问题2:解决In函数问题:判断C是否为运算符是返回1否则返回0*/
{
char ch[7]={'+','-','*','/','#','(',')'};
int i;
for(i = 0; i < 7; i++)
if(c == ch[i])
return 1;

return 0;
}

char Proceed(char op,char c) /*op为栈顶元素,c为当前读入的运算符,比较二者的优先级*/
{ /*问题1:解决Proceed函数*/
char ch;
if(op=='(' && c==')' || op=='#' && c=='#' )
ch = '=';
else
if(op=='+' || op=='-') /*栈顶元素为‘+’或‘-’的时候*/
switch(c)
{
case '+':
case '-':
case ')':
case '#': ch = '>'; break;
case '*':
case '/':
case '(': ch = '<';
}
else
if(op=='*' || op=='/') /*栈顶元素为‘*’或‘/’的时候*/
switch(c)
{
case '+':
case '-':
case '*':
case '/':
case ')':
case '#': ch = '>'; break;
case '(': ch = '<';
}
else
if(op=='(') /*栈顶元素为‘(’的时候*/
switch(c)
{
case '+':
case '-':
case '*':
case '/':
case '(': ch = '<'; break;
case '#': printf("Error!\n"); exit(0);
}
else
if(op==')') /*栈顶元素为‘)’的时候*/
switch(c)
{
case '+':
case '-':
case '*':
case '/':
case '#': ch = '>'; break;
case '(': printf("Error!\n"); exit(0);
}
else
if(op=='#') /*栈顶元素为‘#’的时候*/
switch(c)
{
case '+':
case '-':
case '*':
case '/':
case '(': ch = '<'; break;
case ')': printf("Error!\n"); exit(0);
}
return ch;
}
/* 问题3:解决Operate函数*/
int Operate(int a,char r,int b) /*返回由aRb的值 */
{
int s;
int d1 = a;
int d2 = b; /*把字符ab变为对应数字*/
switch(r)
{
case '+': s = d1+d2; break;
case '-': s = d2-d1; break;
case '*': s = d1*d2; break;
case '/': s = d2/d1;
}
return (s+'0');
}

/*自己注意看解释啊*/

//---------------------------------------------------------------------------
#include <ctype.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

char *read(int count)
{
char a;
static char * p;
if ((a=getchar())!='\n')
{
count++;
read(count);
}
else {
p=malloc(sizeof(char)*(count+1));
*(p+count)=0;
return p;
}
*(p+count-1)=a;
return p;

}
int isop(char a,char *b)
{
if (a>41&&a<44||a==45||a==47) {
*b=a;
return 1;
}
return 0;

}
void comp(float * a,float *b ,char c)
{
switch (c) {
case '+':*a+=*b;break;
case '-':*a-=*b;break;
case '*':*a*=*b;break;
case '/':*a/=*b;break;
default:
;
}
}
int main(int argc, char* argv[])
{
char *in,op;
unsigned int fr=0,len,i,ma=1,sk=1;
float a=0,b=0;
in=read(0);//读入表达式
len=strlen(in);
while (!isop(in[fr],&op)) //读入第一个操作数
{
if (in[fr]!='.'&&sk==1) a=a*10+in[fr++]-48;
else if (in[fr]=='.') {//处理小数点
sk=0;
ma=10;
fr++;
}
else if (sk==0) {
a=a+(float)(in[fr++]-48)/ma;
ma*=10 ;
}
}
ma=1;
sk=1;
for (i=fr+1; i<=len; i++) //读入其余操作数,并进行计算与输出
if (isdigit(in[i])&&sk==1){
b=b*10+(in[i]-48);
}
else if (in[i]=='.') {
sk=0;
//a=a+(in[fr++]-48)/ma;
ma=10;
}
else if (sk==0&&isdigit(in[i])) {
b=b+(float)(in[i]-48)/ma;
ma*=10 ;
}
else if (isop(in[i],&op)) {
sk=1;
ma=1;
if (op!='/'||op=='/'&& b!=0) {
comp(&a,&b,op);
b=0;
}
else {printf("ERROR!");break;}
}
else if (in[i]=='='||in[i]=='\0') {
if (op!='/'||op=='/'&& b!=0) {
comp(&a,&b,op);
printf("%s %g\n",in,a);
}
else printf("ERROR!");
break;
}
putchar('\n');
free(in);
system("pause");
return 0;
}

#include<stdio.h>
void main()
{
int x;
x=3*(6-2)/4;
printf("x=%d\n",x);
}

#include<stdio.h>
void main()
{
int x;
x=3*(6-2)/4;
printf("x=%d\n",x);
}

C语言编一个实现简单的算术表达式求值的代码。~

这个是个简单的学生管理系统,我们学校的程序大作业就是做这个...呵呵,希望能帮到你
#include<stdio.h> /*引用库函数*/
#include<stdlib.h>
#include<ctype.h>
#include<string.h>
typedef struct /*定义结构体数组*/
{
char num[10]; /*学号*/
char name[20]; /*姓名*/
int score; /*成绩*/
}Student;
Student stu[80]; /*结构体数组变量*/
int menu_select() /*菜单函数*/
{
char c;
do{
system("cls"); /*运行前清屏*/
printf("****Students' Grade Management System****
"); /*菜单选择*/
printf(" | 1. Input Records |
");
printf(" | 2. Display All Records |
");
printf(" | 3. Sort |
");
printf(" | 4. Insert a Record |
");
printf(" | 5. Delete a Record |
");
printf(" | 6. Query |
");
printf(" | 7. Statistic |
");
printf(" | 8. Add Records from a Text File|
");
printf(" | 9. Write to a Text file |
");
printf(" | 0. Quit |
");
printf("*****************************************
");
printf("Give your Choice(0-9):");
c=getchar(); /*读入选择*/
}while(c<'0'||c>'9');
return(c-'0'); /*返回选择*/
}
int Input(Student stud[],int n) /*输入若干条记录*/
{int i=0;
char sign,x[10]; /*x[10]为清除多余的数据所用*/
while(sign!='n'&&sign!='N') /*判断*/
{ printf("student's num:"); /*交互输入*/
scanf("%s",stud[n+i].num);
printf("student's name:");
scanf("%s",stud[n+i].name);
printf("student's score:");
scanf("%d",&stud[n+i].score);
gets(x); /*清除多余的输入*/
printf("any more records?(Y/N)");
scanf("%c",&sign); /*输入判断*/
i++;
}
return(n+i);
}
void Display(Student stud[],int n) /*显示所有记录*/
{
int i;
printf("-----------------------------------
"); /*格式头*/
printf("number name score
");
printf("-----------------------------------
");
for(i=1;i<n+1;i++) /*循环输入*/
{
printf("%-16s%-15s%d
",stud[i-1].num,stud[i-1].name,stud[i-1].score);
if(i>1&&i%10==0) /*每十个暂停*/
{printf("-----------------------------------
"); /*格式*/
printf("");
system("pause");
printf("-----------------------------------
");
}
}
printf("");
system("pause");
}
void Sort_by_num(Student stud[],int n) /*按学号排序*/
{ int i,j,*p,*q,s;
char t[10];
for(i=0;i<n-1;i++) /*冒泡法排序*/
for(j=0;j<n-1-i;j++)
if(strcmp(stud[j].num,stud[j+1].num)>0)
{strcpy(t,stud[j+1].num);
strcpy(stud[j+1].num,stud[j].num);
strcpy(stud[j].num,t);
strcpy(t,stud[j+1].name);
strcpy(stud[j+1].name,stud[j].name);
strcpy(stud[j].name,t);
p=&stud[j+1].score;
q=&stud[j].score;
s=*p;
*p=*q;
*q=s;
}
}
int Insert_a_record(Student stud[],int n) /*插入一条记录*/
{char x[10]; /*清除多余输入所用*/
printf("student's num:"); /*交互式输入*/
scanf("%s",stud[n].num);
printf("student's name:");
scanf("%s",stud[n].name);
printf("student's score:");
scanf("%d",&stud[n].score);
gets(x);
n++;
Sort_by_num(stud,n); /*调用排序函数*/
printf("Insert Successed!
"); /*返回成功信息*/
return(n);
}
int Delete_a_record(Student stud[],int n) /*按姓名查找,删除一条记录*/
{ char s[20];
int i=0,j;
printf("tell me his(her) name:"); /*交互式问寻*/
scanf("%s",s);
while(strcmp(stud[i].name,s)!=0&&i<n) i++; /*查找判断*/
if(i==n)
{ printf("not find!
"); /*返回失败信息*/
return(n);
}
for(j=i;j<n-1;j++) /*删除操作*/
{
strcpy(stud[j].num,stud[j+1].num);
strcpy(stud[j].name,stud[j+1].name);
stud[j].score=stud[j+1].score;
}
printf("Delete Successed!
"); /*返回成功信息*/
return(n-1);
}
void Query_a_record(Student stud[],int n) /*查找并显示一个记录*/
{ char s[20];
int i=0;
printf("input his(her) name:"); /*交互式输入*/
scanf("%s",s);
while(strcmp(stud[i].name,s)!=0&&i<n) i++; /*查找判断*/
if(i==n)
{ printf("not find!
"); /*输入失败信息*/
return;

}
printf("his(her) number:%s
",stud[i].num); /*输出该学生信息*/
printf("his(her) score:%d
",stud[i].score);
}
void Statistic(Student stud[],int n) /*新增功能,输出统计信息*/
{ int i,j=0,k=0,sum=0;
float aver; /*成绩平均值*/
for(i=0;i<n;i++) /*循环输入判断*/
{
sum+=stud[i].score;
if(stud[j].score>stud[i].score) j=i;
if(stud[k].score<stud[i].score) k=i;
}
aver=1.0*sum/n;
printf("there are %d records.
",n); /*总共记录数*/
printf("the hignest score:
"); /*最高分*/
printf("number:%s name:%s score:%d
",stud[j].num,stud[j].name,stud[j].score);
printf("the lowest score:
"); /*最低分*/
printf("number:%s name:%s score:%d
",stud[k].num,stud[k].name,stud[k].score);
printf("the average score is %5.2f
",aver); /*平均分*/
}
int AddfromText(Student stud[],int n) /*从文件中读入数据*/
{ int i=0,num;
FILE *fp; /*定义文件指针*/
char filename[20]; /*定义文件名*/
printf("Input the filename:");
scanf("%s",filename); /*输入文件名*/
if((fp=fopen(filename,"rb"))==NULL) /*打开文件*/
{ printf("cann't open the file
"); /*打开失败信息*/
printf("");
system("pause");
return(n);
}
fscanf(fp,"%d",&num); /*读入总记录量*/
while(i<num) /*循环读入数据*/
{
fscanf(fp,"%s%s%d",stud[n+i].num,stud[n+i].name,&stud[n+i].score);
i++;
}
n+=num;
fclose(fp); /*关闭文件*/
printf("Successed!
");
printf("");
system("pause");
return(n);
}
void WritetoText(Student stud[],int n) /*将所有记录写入文件*/
{
int i=0;
FILE *fp; /*定义文件指针*/
char filename[20]; /*定义文件名*/
printf("Write Records to a Text File
"); /*输入文件名*/
printf("Input the filename:");
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL) /*打开文件*/
{
printf("cann't open the file
");
system("pause");
return;
}
fprintf(fp,"%d
",n); /*循环写入数据*/
while(i<n)
{
fprintf(fp,"%-16s%-15s%d
",stud[i].num,stud[i].name,stud[i].score);
i++;
}
fclose(fp); /*关闭文件*/
printf("Successed!
"); /*返回成功信息*/
}
void main() /*主函数*/
{
int n=0;
for(;;)
{
switch(menu_select()) /*选择判断*/
{
case 1:
printf("Input Records
"); /*输入若干条记录*/
n=Input(stu,n);
break;
case 2:
printf("Display All Records
"); /*显示所有记录*/
Display(stu,n);
break;
case 3:
printf("Sort
");
Sort_by_num(stu,n); /*按学号排序*/
printf("Sort Suceessed!
");
printf("");
system("pause");
break;
case 4:
printf("Insert a Record
");
n=Insert_a_record(stu,n); /*插入一条记录*/
printf("");
system("pause");
break;
case 5:
printf("Delete a Record
");
n=Delete_a_record(stu,n); /*按姓名查找,删除一条记录*/
printf("");
system("pause");
break;
case 6:
printf("Query
");
Query_a_record(stu,n); /*查找并显示一个记录*/
printf("");
system("pause");
break;
case 7:
printf("Statistic
");
Statistic(stu,n); /*新增功能,输出统计信息*/
printf("");
system("pause");
break;
case 8:
printf("Add Records from a Text File
");
n=AddfromText(stu,n); /*新增功能,输出统计信息*/
break;
case 9:
printf("Write to a Text file
");
WritetoText(stu,n); /*循环写入数据*/
printf("");
system("pause");
break;
case 0:
printf("Have a Good Luck,Bye-bye!
"); /*结束程序*/
printf("");
system("pause");
exit(0);
}
}
}

把Status InitStack1 (Stack1 *S)改成Status InitStack1 (Stack1 *&S)试试。
InitStack2也相应改。

又发现一个问题,你的Push2遇到数字字符时是直接把该字符入栈的,比如遇到1,入栈的是字符'1',其真实的值是'1'的ASCII码49。然后你的Operate函数又是直接拿这个49来运算的。。。。。。

再发现一个问题,你的Push1和Push2函数的原理不一样。Push1的结果是top指针始终指向栈顶元素的下一个位置。Push2的结果则是top指针指向栈顶元素。而你的两个Pop函数都是以Push2的原理而设计的,当然有问题。要么都用Push1的原理,要么都用Push2的原理。 根据你的栈初始化函数的设计,top指针应该是指向栈顶元素的下一个位置,所以建议push和pop函数都要坚持这一原则。

最后发现一个问题。 Push2(OPND,(Operate(a,theta,b)));
要注意,栈的入栈序列和出栈序列是相反的,比如你输入8-5#,入栈的时候8在5下面,所以出栈的时候5先出来,赋给了a,8再出来,赋给了b,这时候Operate(a,theta,b)就成了计算5-8,当然错误了。应该改成 Push2(OPND,(Operate(b,theta,a)));

好了,貌似没发现什么问题了,你自己再测试一下吧,我要睡了。

相关要点总结:

13227523827:用c语言写带括号表达式求值的程序
宋巧答:base的值为NULL SElemType *top;// 栈顶指针 int stacksize;// 当前已分配的存储空间,以元素为单位 }SqStack;/* *构造一个栈 * */int InitStack(SqStack *S){// 为栈底分配一个指定大小的存储空间(*S).base = (SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));if( !(*S)....

13227523827:C语言 任意表达式求值。(栈的应用
宋巧答:/*** 只适合整数的表达式求值 ***/ /***其中部分可作修改,表达式也可是输入的***/ include "iostream.h"const int n0=30;int s1[n0+1]; //操作数栈 char s2[n0+1]; //运算符栈 int t1,t2;int num[4]; //提取表达式中的整数 void calcu() //一次计算 { int x1,x2,x...

13227523827:c编程表达式求值:帮我修改程序,能运行3*(7-2)就行!悬赏30分
宋巧答:2008-05-07 求一个C语言算术表达式求值程序 29 2014-05-08 用栈对算术表达式求值:3*(7-2),写出栈的操作顺序和过程 3 2016-12-03 编写程序对表达式求值C语言 4 2011-01-15 C语言编程(数据结构):表达式求值 15 2008-12-24 求波兰表达式的c++程序 要快!!! 3 更多...

13227523827:C语言,关于阶乘的表达式求值
宋巧答:public class Example { //求10的阶乘 public static void main(String[] args){ int sum=1;for(int i=1;i<=10;i++){ sum*=i;} System.out.println(sum);} } public class Example // 求阶乘方法 public static int factorial(int n){ int result = 1;for(int i = 1;i<=n;i...

13227523827:C语言两个整型数的算术运算?
宋巧答:第5空填 a*b;第6空填 a/b;第7空填 a%b;第8空填 printf("差=%d\n",sub);第9空填 printf("积=%d\n",mul);第10空填 printf("商=%d\n",div);第11空填 printf("余数=%d\n",oct);完整的C语言程序如下 include<stdio.h> int main(void){ int a,b;//a和b是输入的两个整型...

13227523827:C语言关于表达式求值
宋巧答:这是我以前做的一个表达式求值的程序,要求和实现的功能是一样的:include<stdio.h> include <string.h> include <conio.h> define PLUS 0 define MINUS 1 define POWER 2 define DIVIDE 3 define LEFTP 4 define RIGHP 5 define STARTEND 6 define DIGIT 7 define POINT 8 define NUM 7 defi...

13227523827:C语言 就下面算术表达式的值
宋巧答:1、注意运算符的优先级。括号的优先级最高,%,*,/的优先级相同。(int)是强制类型转换,把int后面的数转换成int型,float同理。所以计算是:2.5+2%3*(int)(3.5+2.5)%2/4=2.5+2*0/4=2.5 这里2.5+3.5=6.0,6.0被强制转换成int型,变成整数6。2.先进行强制转换再计算值。(...

13227523827:c语言栈的表达式求值
宋巧答:SElemType c;a=a-48;//ASCII值转化为对应的十进制值 b=b-48;//ASCII值转化为对应的十进制值 switch(theta){ case'+':c=a+b+48;break;case'-':c=a-b+48;break;case'*':c=a*b+48;break;case'/':c=a/b+48;} return c;} // 算法3.4 P54 // 算术表达式求值的算符优先算法...

13227523827:设计一个程序,演示用算符优先法对算术表达式求值的过程,实验内容:从...
宋巧答:if(!base)exit(1);top=base;stacksize=InitSize;} template<class datatype> void SqStack<datatype>::DestroyStack(){ delete[] base;base=top=NULL;stacksize=0;} template<class datatype> void SqStack<datatype>::ClearStack(){top=base;} template<class datatype> int SqStack<datatype...

13227523827:如何用C语言编写程序,求两个数相除的余数。?
宋巧答:具体解题方法如下:int a,b,t; //这里因为求出的余数不可能是小数,所以用整型。scanf("%d%d%d",&a,&b,&t);t=a%b; //最核心的就是这一步,求余数。printf("%d",t);return(0);这样输出的t就是余数了。C语言中的运算符:1 算术运算符 用于各类数值运算。包括加(+)、减(-)...

(编辑:本站网友)
相关推荐
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图
@ 百韵网