array [] stores> char,如何使用它

时间:2017-07-14 15:38:08

标签: c arrays

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(){
    char array[2];
    printf("Enter two of < or > or =");
    scanf("%s",array);
    if ((2 array[0] 3)&&(4 array[1] 3)){
        printf("It works\n");
    }
    else printf("Yup! the code still works\n");

}

以上简化代码旨在获取输入&lt;&gt;来自用户并尝试使用它来比较两个数字,但编译器抛出错误&#39;因为它不接受array [0]为&gt;。请提供问题的解决方案。

2 个答案:

答案 0 :(得分:2)

您不能仅使用char作为运算符,但您可以使用基于输入的if else序列来比较值。

实施例

if (array[0] = '>') some_variable = 2>3;
else if (array[0] = '<') some_variable = 3>2;
else if (array[0] = '=') some_variable = 3==2;

如果您愿意,也可以使用switch语句。

然后,您可以为数组中的第二个元素重复类似的序列。

答案 1 :(得分:1)

您不能使用char变量作为运算符的替代。您必须将变量与特定char进行比较并返回比较。

int num1;
int num2;
bool comp[2];
switch(array[0]) {
case '>':
    comp[0] = (num1 > num2);
    printf("%a > %b\n", num1, num2);
    break;
case '<':
    comp[0] = (num1 < num2);
    printf("%a < %b\n", num1, num2);
    break;
case '=':
    comp[0] = (num1 == num2);
    printf("%a = %b\n", num1, num2);
    break;
default:
    comp[0] = false;
    printf("Invalid character %c\n", array[0]);
    break;
}
switch(array[1]) {
... //Switch over the other element of array
}
if(comp[0] && comp[1]) {
    printf("It works\n");
}

如果您希望用单词替换运算符,可以使用宏:

#define LT <
bool x = (1 LT 0); //Sets x to false