三目运算符

A?B:C

等价于

if(A)

  B;

else

  C;

实例:

int i;

i=(3>2?5:1)  //如果3》2为真,i的值为5,否则为1

printf(“%d”,i);

逗号表达式

格式

(A,B,C,D)

功能: 从左到右执行

    最终表达式的值是最后一项的值

实例:

#include <stdio.h>
int main(void)
{
int i;
int j=2;
i=(j++,++j,j+2,j-3);
printf("%d\n",i);

return 0;
}

结果为1。

while循环

1.执行顺序

格式: while(表达式)

    语句;

2.与for的相互比较

for和while可以相互转换,但for的逻辑性更强,更不容易出错

for(1;2;3)

    A;

等价于

1;

while(2)

{

A;

3;

}

//for 与 while的转换
#include <stdio.h>
int main(void)
{
int sum=0;
int i;
/*for(i=1;i<101;i++)
sum=sum+i;
*/
i=1;
while (i<101)
{
sum=sum + i;//语句一
i++; //语句二 语句一与语句二顺序不可以调转
}
printf("%d\n",sum);

return 0;
}

3.实例

从键盘输入一个数字,如果该数字是回文数,返回yes,否则返回no。

回文数:正着写和倒着写都一样  比如:121

#include <stdio.h>
int main(void)
{
int i;
int m;
int sum=0;
printf("请输入您要判断的数字:");
scanf("%d",&i);
m=i;
while(m)
{
sum= sum *10+m%10;
m/=10;//等价于m=m/10
}
if(sum ==i)
printf("yes\n");
else
printf("no!\n");

return 0;
}

//斐波拉契数列 1 2 3 5 8 13 21 34
#include <stdio.h>
int main(void)
{
int n;
int f1,f2,f3;

int i;
f1=1;
f2=2;
printf("请输入您要输入的序列:");
scanf("%d",&n);
if (1==n)
{
f3=1;
}
else if(2==n)
{
f3=2;
}
else
{
for (i=3; i<=n;i++)
{
f3=f1+f2;
f1=f2;
f2=f3;
}
}
printf("%d\n",f3);
return 0;
}

do... while:主要用于人机交互

格式:do

{

...

} while(表达式);

do ...while..并不等价于for,也不等价于while

代码整理格式:全选(ctrl+a)---》alt+f8

//斐波拉契数列 1 2 3 5 8 13 21 34
#include <stdio.h>
int main(void)
{

int n;
int f1,f2,f3;
char ch;
int i;
f1=1;
f2=2;
do
{
printf("请输入您要输入的序列:");
scanf("%d",&n);
if (1==n)
{
f3=1;
}
else if(2==n)
{
f3=2;
}
else
{
for (i=3; i<=n;i++)
{
f3=f1+f2;
f1=f2;
f2=f3;
}
printf("%d\n",f3);
}

printf("您想继续吗(y/n):");
scanf(" %c", &ch); //%c前面要加一个空格(空白符的问题)
}//while (1);
while ('y'==ch || 'Y'==ch);

return 0;
}

随机推荐

  1. ThinkPHP 3.2.3 简单后台模块开发(二)RBAC

    RBAC(Role-Based Access Controll)基于角色的访问控制 在 ThinkPHP3.2.3 中 RBAC 类位于 /ThinkPHP/Library/Org/Util/Rbac ...

  2. symmetric multiprocessor

    https://en.wikipedia.org/wiki/Symmetric_multiprocessor_system A symmetric multiprocessor system (SMP ...

  3. DBXJSON和ADO的效率真的好低....

    项目需要写了一个JSON和DataSet互转的单元.....支持了Delphi自带的几种DataSet, 结果发现DBXJSON和ADO的效率真的是好低啊........-_-.... 开发环境是XE ...

  4. MySql超新手入门

    https://www.kancloud.cn/thinkphp/mysql-tutorial/36457

  5. MySQL基础CRUD编程练习题的自我提升(1)

    基础知识: 1.数据库的连接 mysql -u -p -h -u 用户名 -p 密码 -h host主机 2:库级知识 2.1 显示数据库: show databases; 2.2 选择数据库: us ...

  6. erlang httpc

    1,set proxy 10.100.1.76 :8888 httpc:set_options([{proxy,{{"10.100.1.76",8888},[]}}]). 2,se ...

  7. 关于Thread.getContextClassLoader的使用场景问题

    Thread context class loader存在的目的主要是为了解决parent delegation机制下无法干净的解决的问题.假如有下述委派链: ClassLoader A -> ...

  8. Android之ViewHolder用法

    http://www.cnblogs.com/mengdd/p/3254323.html (zhuan) http://blog.csdn.net/mrzhang_happy/article/deta ...

  9. 通过setDB2Client*来方便的使用TRACE调优jdbc程序

    一般来说通过TRACE的report来分析DDF的性能问题的话,基本对DBA都是噩梦一样.因为所有的Thread都是通过DDF一个类型的Thread,所以不管你怎么分类,看Accounting rep ...

  10. [python]WindowsError的错误代码详解

    转自:http://www.aichengxu.com/view/46906 WindowsError的错误代码详解 0操作成功完成. 1功能错误. 2系统找不到指定的文件. 3系统找不到指定的路径. ...