C语言中的逻辑或运算符可以按住shift键,接着按两下enter上面的键就能打出来。
C语言的运算异常丰富,除了控制语句和输入输出以外的几乎所有的基本 *** 作都作为运算符处理。除了常见的三大类,算术运算符、关系运算符与逻辑运算符之外,还有一些用于完成特殊任务的运算符,比如位运算符。
C语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。
按位运算符做的事在现代代码中不常见到。它们会用各种方式改变构成字节和其他数据结构的位。我不会在本书中讲这些,不过在一些特定类型底层系统中,它们用起来会非常顺手。
赋值运算符的作用是将表达式赋给变量,不过C语言中很多运算符都可以和赋值合并使用。
扩展资料:
C语言常见的运算符:
1、算数运算符:用于算数运算,包括+、-、* 、/等;关系运算符:用于比较运算,包括>、<、==、!=等。
2、逻辑运算符:用于逻辑运算,包括 &&、||、!三种;位 *** 作运算符:按二进制位对位运算,包括&、|、~、<<等。
3、赋值运算符:用于赋值运算,包括=、+=、&=等;条件运算符:三目运算符,用于条件求值(?:).
4、逗号运算符:用于把若干表达式组合成一个表达式(,);指针运算符:用于取内容*和用于取地址&。
5、求字节数运算符:用于计算数据类型所占的字节数sizeof;特殊运算符:()、[]、成员(->,.)等。
用C语言吗?程序如下:
main()
{
char op,str[80]
int i,j,s,n,m,ptr
for (i=0i<=6561i++) /*i是每一种枚举的情况,把i分解为八位3进制数,每一位表示每一个位置的符号*/
{
s=0 /*该方式下的和*/
m=1 /*作 *** 作数*/
n=i /*获取i在3进制下的每一位会破坏i,所以借用变量n来获取*/
op='+' /*第一次 *** 作方式为+*/
ptr=0 /*指针用来记录运算过程*/
str[ptr++]='1' /*首先记录一个1*/
for (j=2j<=9j++) /*八次循环,每次的下一个 *** 作数是j*/
{
if (n%3) /*3进制下的第j-1位数,如果不是0,则要完成先前的 *** 作*/
{
if (op=='+') s+=melse s-=mm=j
}
switch(n%3) /*根据这一位的情况进行处理*/
{
case 0:m=m*10+jbreak
case 1:op='+'break
case 2:op='-'break
}
if (n%3) str[ptr++]=op /*记录运算模式*/
str[ptr++]='0'+j
n/=3
}
if (op=='+') s+=melse s-=m
str[ptr]='\0'
if (s==100) printf("FOUND: %s=%d\n",str,s) /*判断是否满足*/
}
}
程序运行结果为:
FOUND: 123-45-67+89=100
FOUND: 12-3-4+5-6+7+89=100
FOUND: 12+3+4+5-6-7+89=100
FOUND: 123+4-5+67-89=100
FOUND: 1+2+3-4+5+6+78+9=100
FOUND: 12+3-4+5+67+8+9=100
FOUND: 1+23-4+56+7+8+9=100
FOUND: 1+2+34-5+67-8+9=100
FOUND: 1+23-4+5+6+78-9=100
FOUND: 123+45-67+8-9=100
FOUND: 123-4-5-6-7+8-9=100
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)