北京大学机试-加减乘除

在这里插入图片描述
在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
const int maxn = 105;
int main(){
	char str[maxn];
	while(gets(str)){
		int d1=0,d2=0;
		int len = strlen(str);
		char ch;
		int i;
		for(i=0;i<len&&str[i]!=' ';i++){
			if(str[i]>='0'&&str[i]<='9'){
				d1 = d1*10+str[i]-'0';
			}	
		}
		ch = str[i+1];
		i = i+3;
		int ans;
		if(ch!='!'){
	      while(i<len){
		  d2 = d2*10+str[i]-'0';
		  i++;
		  }
		  if(ch=='+') {
		  	ans = d1+d2;
		  	printf("%d\n",ans);
		  } 
		  else if(ch=='-') {
		  	ans = d1-d2;
		  	printf("%d\n",ans);
		  } 
		  else if(ch=='*') {
		  	ans = d1*d2;
		  	printf("%d\n",ans);
		  } 
		  else if(ch=='/')  {
		  	if(d2!=0) {
		  		ans = d1/d2;
		  		printf("%d\n",ans);
			  } 
		  	
		  	else{
		  		printf("error\n");
		  	//	break;
			  }
		  }
		  else if(ch=='%')  {
		  	if(d2!=0)  {
		  		ans = d1%d2;
		  		printf("%d\n",ans);
			  }
		  	else{
		  		printf("error\n");
			  }
		  }		  
		}
		else{
			ans = 1;
			for(int i=1;i<=d1;i++){
				ans = ans*i;
			}
			printf("%d\n",ans);
		}	
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_37762592/article/details/88757449