家人们谁会,这是哪一块的算法啊
以下是用C语言实现的代码,可以直接运行:#include <stdio.h>
#include <string.h>
#define MAX_LEN 101
int main() {
int n, num1, num2, result;
char exp_str, op;
scanf("%d", &n);// 输入测试数据组数
for (int i = 0; i < n; i++) {
scanf("%s", exp_str);// 读取表达式字符串
int len = strlen(exp_str);// 计算字符串长度
// 将数字字符串转换成整数类型,并依次提取运算符和数字进行比较
sscanf(exp_str, "%d", &num1);
result = 1;// 初始化表达式结果为True
for (int j = 1; j < len; j += 2) {
op = exp_str;
sscanf(exp_str+j+1, "%d", &num2);
if (op == '<') {
if (!(num1 < num2)) {
result = 0;
break;
}
} else if (op == '>') {
if (!(num1 > num2)) {
result = 0;
break;
}
} else if (op == '=') {
if (!(num1 == num2)) {
result = 0;
break;
}
} else if (op == '!') {
if (!(num1 != num2)) {
result = 0;
break;
}
}
num1 = num2;// 更新num1的值
}
// 输出最终结果
printf("%d\n", result);
}
return 0;
}
该代码先读取输入数据,然后遍历每一组测试数据,将表达式字符串拆分成数字和运算符,并依次进行比较。在比较运算时,根据运算符的类型,选择相应的逻辑运算符进行比较。同时,通过设置一个初始值为1的result变量,来记录表达式的结果,如果出现了任意一项比较的结果为0,就说明整个表达式结果为0,立即跳出循环。最终输出result的值即可。注意,此处将字符型的数字字符串转换为整型的方法是使用sscanf函数。 家人们,好像可以用栈弹出
页:
[1]