在tc中,if函数,条件选择不了??为什么!

来源:百度知道 编辑:UC知道 时间:2024/05/20 15:05:13
假如
#include<stdio.h>
#include<string.h>
main()
{
char a[10];
if(a[10]="0123"||"01234")
printf("right");
else
printf("wrong");
}
为什么条件选择不了,都是输出right?????

"if(a[10]="0123"||"01234")"
错误有三点
1.
这是一个附值表达式,=号应该改成==
2.a[10]代表的不是字符串,而且数组中的下表是不能超过9的
3.或"||"作为二元逻辑符号,其左右两边都应该是一个逻辑表达式

正确的应该是if(a[]=="0123"||a[]=="01234");
而且前面还要加入输入语句给a[]付值

应该输入两个等号
if(a[10]=="0123"||"01234")
这样才是判断两值相等,一个等号是赋值啦。
新手常见错误。

楼上的正解
=是赋值语句,==才是数学中"="的意思

要把赋值号改为等号,a[10]="0123"||"01234“这个表达式的值永远为真,所以不输出else语句。

1。a[10]对于字符数组a而言已经非法了!
数组a下标范围0-9
2。if条件部分你想判断什么?如果是判断字符数组a中的内容是否是“0123”或者“01234”,应该
if(strcmp(a,"0123")==0 || strcmp(a,"01234")==0)

字符串判断应该用 strcmp