當前位置:首頁 » 編程語言 » c語言判斷運算符類型的程序
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言判斷運算符類型的程序

發布時間: 2023-07-21 21:26:10

㈠ 怎麼在c語言中判斷scanf語句輸入的運算符是否為+號

char c;
scanf("%c", &c);
if ( '+' == c )
{
}

㈡ C語言編程中,怎樣使輸出的加減乘除是運算符

#include<stdio.h>
#include<string.h>
#define N 100

typedef struct{ //操作數棧
float d[N];
int len; //len相當於top
}stacks,*lists;

typedef struct{ //運算符棧
char c[N];
int len; //len相當於top
}stack,*list;

int init(list p); //stack 初始化
int inits(lists p); //stacks 初始化
int pushs(lists p,float m); // stacks 入棧
int push(list p,char c); //stack 入棧
int pops(lists p,float *m); //stacks 出棧
int pop(list p,char *c); //stack 出棧
int in(char c); //判斷C是否為數據 是則返回 1 否則 返回 0
char pre(char s,char c); //判斷s c的優先順序 s>c return '>'; s<c return '<';s=c return '=' ;
float operate(float a,char t,float b); //對a b進行t(+-*/)運算 return a+b or a-b, a*b ,a/b
float value(char s[]); //求表達式S 的值

void main(){
char s[N]; int n; float f;
printf("*******************Express Evaluate***********************\n");
while(1){
printf("please input a express\n");
scanf("%s",s); //輸入表達式
n=strlen(s); //求表達式的長度
printf("express length=%d\n",n); //輸出表達式的長度
s[n]='#'; //在表達式尾部插入'#' 注: # 表示操作結束
f=value(s); //計算表達式的長度
printf("f=%.5f\n",f); //輸出表達時的值 注 只輸出前五位小數
printf("continue input 1,break input 0\n");
scanf("%d",&n); printf("\n"); //判斷是否繼續進操作 是則輸入 1,否則輸入 0
if(!n) break; }
}

int init(list p){
if(!p) {printf("Error,init stack NULL\n"); return 0;}
p->len=0;
return 1;
}
int inits(lists p){
if(!p) {printf("Error,init stacks NULL\n"); return 0;}
p->len=0;
return 1;
}
int pushs(lists p,float m){
if(!p) {printf("Error,pushs stacks NULL\n"); return 0;}
p->d[p->len++]=m; return 1;
}
int push(list p,char c){
if(!p) {printf("Error,push stack NULL\n"); return 0;}
p->c[p->len++]=c; return 1;
}
int pops(lists p,float *m){
if(!p) {printf("Error,push stacks NULL\n"); return 0;}
*m=p->d[--p->len]; return 1;
}
int pop(list p,char *c){
if(!p) {printf("Error,push stack NULL\n"); return 0;}
*c=p->c[--p->len]; return 1;
}
int in(char c){ //判斷C是否為數據 是則返回 1 否則 返回 0
if(c>='0'&&c<='9'||c=='.') return 1; return 0;}
char pre(char s,char c){ //判斷s c的優先順序 s>c return '>'; s<c return '<';s=c return '=' ;
char m= '<' , n= '=' , k='>' , r;
if((s=='-')||(s=='+')){
if((c=='*')||(c=='(')||(c=='/'))
r=m;
else r=k; }
if((s=='*')||(s=='/')){
if((c=='(')) r=m;
else r=k; }
if(s=='('){
if(c==')') r=n;
else r=m; }
if(s==')')
r=k;
if(s=='#') {
if(c=='#') r=n;
else r=m; }
return r;
}
float operate(float a,char t,float b){ //對a b進行t(+-*/)運算 return a+b or a-b, a*b ,a/b
if(t=='-') return a-b; if(t=='+') return a+b;
if(t=='*') return a*b; if(t=='/') return a/b; }

float value(char s[]){
stacks opnd; stack optr; char *p,*pr,x,t; float a,b,m=0;
inits(&opnd); init(&optr); int k=0,i,tp=10;
push(&optr,'#'); //將'#'壓入棧optr中,作結束標志
p=pr=s; //初始化 指針 p pr 使pr p 指向 表達式
while(*p!='#'||optr.c[optr.len-1]!='#'){//當p指向的操作符 和optr 中的棧頂元素都為'#'時 操作結束
if(in(*p)) //如果p指向數字 則把 數字字元串轉化為實型(float)數據 並存入棧opnd中
{
m=0; k=0; tp=10;
while(in(*p)) p++; //使p指向下一個運算符
while(pr!=p)
{
if(*pr!='.') //如果pr指向小數點 則跳過
m=(m+*(pr++)-'0')*10; //將單個字數字元轉化為數據 並逐位求和
else{ //如 12.3 -> 1230
k=p-pr; pr++; }
}
for(i=0,tp=10;i<k;i++) //求出除數tp 使1230除以tp(100)等於 12.3
{
tp=tp*10;
if(i==k-1)
tp=tp/10;
}
pushs(&opnd,m/tp); //輸入棧opnd中
}
else switch(pre(optr.c[optr.len-1],*p)){
case'<':push(&optr,*p);p++;pr=p;break;
case'=':pop(&optr,&x);p++;pr=p;break;
case'>':pop(&optr,&t); pops(&opnd,&b); pops(&opnd,&a); //輸出一個操作符和兩個數據
pushs(&opnd,operate(a,t,b));break;} //運算
}
return opnd.d[opnd.len-1]; //返回表達式的值
}

㈢ c語言運算符分類及運算順序和級別總結

1.關系運算符和關系表達式
< <= > >= (6級) == !=(7級)
從左到右運算,結果為0,1
運算符三要素:功能,優先順序,運算方向(結合性)
7=7(不合法,是賦值運算不是關系運算)
5>4>3(合法5>4--->1 1>3--->0,所以該運算結果為0)
1<2<3(合法1<2---->1 1<3--->1,所以該運算結果為1)
2.邏輯運算符和邏輯表達式:結果是1,0
&&(11級) ||(12級) !(2級)(與或非)

算數運算符(9):+ - * / % ++ --
關系運算符(6):== != > >= < <=
邏輯運算符(6):&& || ! ^ & |
位運算符(7):& | ~ ^ >> << >>>;
1級是特殊運算符:括弧()
2級是單目運算符:++,-- 從右向左運算,只需要一個運算對象;
3、4級算數運算符:+ - * /
6、7級關系運算符:== != > >= < <=
11、12級邏輯運算符:&& || ! ^ & |
3~12級是雙目運算符:從左向右,需要兩個運算對象
13級是三目運算符:需要三個運算對象
14級是賦值運算符:=

在c語言中有0短路和1短路,如:4<3&&9----->0&&9--->0;1<2<3||5<6<7--->1||5<6<7--->1

例如:

㈣ c語言判斷是不是素數的程序

1、首先打開CodeBlocks,創建一個新項目。

㈤ C語言判斷字元串類型程序!!!!!!!!!!

#include <stdio.h>


int

main(int argc, char *argv[])

{


char str[101]={0};

char *p=str;


int digitCount=0;

int letterCount=0;


printf("please input a string: ");


gets(str);


printf("your input string is: %s ",str);


while(*p!='')

{

if(*p>'0'&&*p<'9')

{

digitCount++;

}

else if((*p>'a'&&*p<'z')||(*p>'A'&&*p<'Z'))

{

letterCount++;

}

p++;

}


if(digitCount==0&&letterCount==0)

{

printf("you have nothing input. ");

}

else if(digitCount>0&&letterCount>0)

{

printf("mixed ");

}

else if(digitCount>0&&letterCount==0)

{

printf("digit ");

}

else if(digitCount==0&&letterCount>=0)

{

printf("letter ");

}

else

{

//no way

}






getchar();


return 0;

}


㈥ C語言如何用if語句判斷輸入的符號,是否為運算符(+,-,*或者/)

char op;

op=getchar();

if (op=='+')
{
puts("+");
}
else if (op=='-')
{
puts("-");
}
else if (op=='*')
{
puts("*");
}
else if (op=='/')
{
puts("/");
}
else puts("ERROR");