初学时要注意格式,运行过了,正确!
#include<stdioh>
void main()
{
int i=0,num=0;
char str[100],c;
gets(str);
do
{
while((c=str[i])==' ')/while循环的作用是把数组st[100]r中的第一个字符赋值给c。
最开始i=0,如果第i个字符是空格,执行语句i++;继续循环。当遇到字符时(也就是开始出现单词时)结束while循环,执行下一步 *** 作/
i++;
if(c!='\0')/如果c的值不等于‘\0’,即不是结束符,那么num++;(计算单词的数量)/
num++;
while((c=str[i])!=' '&&c!='\0')/如果c不等于空格符,那么i++;直到第i个字符为空格时,结束循环。
然后再一次执行do{}while整个大循环,直到整个字符数组的中出现‘\0’,即结束符/
i++;
}while(c!='\0');
printf("number of word :%d\n",num);
}
运算符也有个运算顺序问题,先算乘除再算加减。单目正和单目负最先运算。取模运算符(%)用于计算两个整数相除所得的余数。例如:
a=7%4;
最终a的结果是3,因为7%4的余数是3。
那么有人要问了,我要想求它们的商怎么办呢?b=7/4;
这样b就是它们的商了,应该是1。
也许有人就不明白了,7/4应该是175,怎么会是1呢?这里需要说明的是,当两个整数相除时,所得到的结果仍然是整数,没有小数部分。要想也得到小数部分,可以这样写70/4或者7/40,也即把其中一个数变为非整数。
那么怎样由一个实数得到它的整数部分呢?这就需要用强制类型转换了。例如:a=(int)(70/4);
因为70/4的值为175,如果在前面加上(int)就表示把结果强制转换成整型,这就得到了1。那么思考一下
a=(float)(7/4);
最终a的结果是多少?
单目减运算符相当于取相反值,若是正值就变为负值,若是负数就变为正值。单目加运算符没有意义,纯粹是和单目减构成一对用的。
优先级是对多个函数并列时候优先算法的特权,没有注意优先级的顺序就会把算法出错,这些优先级是必须记住的。下面的是我自己总结的关于C优先级的口诀当然,应用这个口诀的前提是你必须认识所有的C语言的运算符。优先决括号成员第一; //括号运算符[]() 成员运算符 -全体单目第二; //所有的单目运算符比如++ -- +(正) -(负) 指针运算&乘除余三,加减四; //这个"余"是指取余运算即%移位五,关系六; //移位运算符:<< ,关系: < = <= 等等于(与)不等排第七; //即== !=位与异或和位或; //这几个都是位运算: 位与(&)异或(^)位或(|)"三分天下"八九十;逻辑或跟与; //逻辑运算符:|| 和 &&十二和十一; //注意顺序:优先级(||) 底于 优先级(&&)条件高于赋值
C语言中,运算符的运算优先级共分为15 级。1 级最高,15 级最低。 在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符 优先级相同时,则按运算符的结合性所规定的结合方向处理。
各等级运算符如下:
(以下说明中,对传统的1级和2级做了细化,1和2对应传统1级,3和4对应传统2级,所以细化说明共有17级。)
1、基本表达式 1级
基本表达式(Primary expressions),主要是用于运算符之间,做为运算数。
标识,常量,字符串文字量,优先级提升表达式最优先执行。
优先级提升表达式是指圆括号包围的表达式,如“( expression )”
2、后缀表达式 2级
postfix-expression [ expression ],数组下标运算。
postfix-expression ( argument-expression-list),函数调用,括号内的参数可选。
postfix-expression identifier,成员访问,
postfix-expression -> identifier,成员访问,->号之前应为指针。
postfix-expression ++,后缀自增
postfix-expression --,后缀自减
( type-name ) { initializer-list }
( type-name ) { initializer-list , } 复合初始化,C99后新增。
3、单目/一元运算 3级
++ unary-expression 前缀自增
-- unary-expression 前缀自减
unary-operator cast-expression 单目转型表式式, 包括 取地址& ,提领 , 正号+ ,负号- 位反~ 逻辑否!。
sizeof unary-expression 求类型长度,对表达式求类型长度
sizeof ( type-name ) 求类型长度
4、强制类型表达式 4级
( type-name ) cast-expression,强制表达式成为type-name指定的类型。
5、乘法表达式 5级
“ ” 乘法运算符;“ / ”除法运算符;“ % ” 取余运算符。
6、加法运算符 6级
“ + ”加法运算符;“ - ”减法运算符。
7、移位运算符 7级
<< 左移运算符;>> 右移运算符。
8、关系运算符 8级
<、<=、>、>=关系运算符。
9、相等运算符 9级
“ == ”等于运算符;“ != ”不等于运算符。
10、位与运算符 10级
“ & ”按位与运算符
11、位异或运算符 11级
“ ∧ ”按位异或运算符(Bitwise exclusive OR operator)。
12、位或运算符 12 级
“ | ”按位或运算符(Bitwise inclusive OR operator)。
13、逻辑与运算符 13级
“&&”逻辑与运算符。
14、逻辑或运算符 14 级
“ || ”逻辑或运算符。
15、三元条件运算符 15级
:条件运算符。
16、赋值运算符 16 级
=、 +=、 -=、 =、 /=、 %=、 &=、 ^=、 |=、 <<=、 >>=赋值运算符。
17、逗号运算符 17级
“,”逗号运算符。
具体可参见下图:
以上就是关于c语言运行顺序全部的内容,包括:c语言运行顺序、在C语言中运算符的运算顺序是如何的、C语言中运算顺序有哪些规律等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)