简单模拟题。
CODE:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
using namespace std;
const int maxn = 101;
char s[maxn];
int a[maxn];
int get(char *s, int *a)
{
int l = strlen(s);
int tot = 0, i = 0, num = 0;
while(i < l)
{
for(; i < l && isdigit(s[i]); i++)
{
num = num*10+s[i]-'0';
}
if(num)
{
a[tot++] = num;
}
num = 0;
i++;
}
return tot;
}
void output(int a, int b)
{
if(a%b == 0)
{
printf("%d\n", a/b);
}
else
{
printf("%.2lf\n", 1.0*a/b);
}
}
int main()
{
int T;
scanf("%d", &T);
getchar();
while(T--)
{
fgets(s, maxn, stdin);
memset(a, 0, sizeof(a));
get(s, a);
char c = s[0];
switch(c)
{
case '+': printf("%d\n", a[0]+a[1]);break;
case '-': printf("%d\n", a[0]-a[1]);break;
case '*': printf("%d\n", a[0]*a[1]);break;
case '/': output(a[0], a[1]);break;
}
}
return 0;
}
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
using namespace std;
const int maxn = 101;
char s[maxn];
int a[maxn];
int get(char *s, int *a)
{
int l = strlen(s);
int tot = 0, i = 0, num = 0;
while(i < l)
{
for(; i < l && isdigit(s[i]); i++)
{
num = num*10+s[i]-'0';
}
if(num)
{
a[tot++] = num;
}
num = 0;
i++;
}
return tot;
}
void output(int a, int b)
{
if(a%b == 0)
{
printf("%d\n", a/b);
}
else
{
printf("%.2lf\n", 1.0*a/b);
}
}
int main()
{
int T;
scanf("%d", &T);
getchar();
while(T--)
{
fgets(s, maxn, stdin);
memset(a, 0, sizeof(a));
get(s, a);
char c = s[0];
switch(c)
{
case '+': printf("%d\n", a[0]+a[1]);break;
case '-': printf("%d\n", a[0]-a[1]);break;
case '*': printf("%d\n", a[0]*a[1]);break;
case '/': output(a[0], a[1]);break;
}
}
return 0;
}
浙公网安备 33010602011771号