用scanf键盘输入1.2*-1.8执行后a=1.3,op=*,c=-1.8
用c++写这个程序
我需要解答,我会谢谢你的帮助
你都在说些啥啊,scanf_s语句咋写的,贴出来
我去 你这是想做字符串解析了 这个思路可以用 字符串查找,切割之后进行解析,针对你这个解析简单,但是复杂的运算符解析就复杂了。
你应该定义一个字符串,存储sacnf输入的字符串,然后字符串其实就是1.2*-1.8,对这个字符串进行解析了,解析这个简单,先查找*的位置,切割,再去取前后。
但是如果涉及过多的加减乘除运算符,就比较复杂了。
这是一个字符串处理的题,主要就是根据特定字符对字符进行切割处理逻辑。
提供一个简单样例 可以参考扩展
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
float a = 1.2;
float c = -1.8;
char op = '*';
if (op == '*')
{
printf("%.2f \n",(double) a * c);
}
char test[20];
memset(test, 0, 20);
scanf_s("%s", test, 20);
printf("输入的字符串为:%s \n", test);
//接下来就是按照你的逻辑对字符串进行处理了
char temp[10] = { 0 };
int j = 0;
for (int i = 0; i < strlen(test); i++)
{
if (test[i] != '*')
{
temp[j] = test[i];
j++;
}
if (test[i] == '*')
{
a = atof(temp);
memset(temp, 0, 10);
j = 0;
op = '*';
}
//这里可以有 + - /对op进行赋值
}
c = atof(temp);
printf("%.2f %c %.2f", a, op, c);
return 0;
}