C

循环

判断四位数及以下正整数的位数

int x;
int n=1;

scanf("%d", &x);

if ( x > 999 ) {
    n = 4;
} else if ( x > 99 ) {
    n = 3;
} else if ( x > 9 ) {
    n = 2;
}

printf("%d\n", n);        

1.从大到小判断不需要判断上限
2.从小到大判断需要判断上限,此时需要&&

&& ||
1.&&是和 就是当两边的条件都成立的时候,返回1,当任何一边的条件不成立的时候,都返回0
2.||是“或” 任意一边成立返回1,都不成立返回0

判断位数
    int x;
    int n=0;
    
    scanf("%d", &x);
    
    n++;
    x /= 10;
    while ( x > 0 ) {
        n++;
        x /= 10;
    }
    printf("%d\n", n);
    

while循环
1.如果我们把while翻译作“当”,那么一个while循环的意思就是:当条件满足时,不断地重复循环体内的语句
2.循环执行之前判断是否继续循环,所以有可能循环一次也没有被执行

do while 循环
在进入循环的时候不做检查,而是在执行完一轮循环体的代码之后,再来检查循环的条件是否满足,如果满足则继续下一轮循环,不满足则结束循环

do
{
    <循环语句>
} while(<循环条件>);   

两种循环“while”与“do while
1.区别:while在循环体开始执行前判断条件
do while在循环体执行结束时判断条件
2.相同:条件满足时执行循环,条件不满足时结束循环

log2x(以2为底)

int x;
int ret = 0;

scanf("%d", &x);
int t = x;
while ( x > 1 ) {
      x /= 2;
      ret ++;
}
printf("log2 of %d is %d", t, ret);      

计数循环

int count = 100;
while ( count >= 0 ) {
   count --;
   printf("%d\n", count);
}
printf(发射!\n");   

如果要模拟运行一个很大次数的循环,可以模拟较少的循环次数,然后做出判断

整数求逆

int x;
x = 700;
int digit;
int ret = 0;

while ( x > 0 ) {
    digit = x%10;
    // printf("%d\n, digit");  [ printf("%d\n, digit");]
    ret = ret*10 + digit;
    printf("x=%d,dirit=%d,ret=%d\n", x digit, ret);  [//printf("x=%d,dirit=%d,ret=%d\n", x digit, ret)]
    x /= 10;
}
printf("%d", ret);  [// printf("%d", ret)]   

输出结果7 [007]

for 循环

阶乘
n!

for ( i = 1; i <= n; i++ ) {
    fact *= i;
}    

上述代码在C99中 i=1也可以是int i=1
for循环
for对于

for ( <初始动作>; <循环继续的条件>; <循环每一轮要做的动作>; ) {
}
for中的每一个表达式都是可以省略的
for ( ; 条件; ) == while (条件)

求和变量初始化为0,求积变量初始化为1

循环次数
for ( i=0; i<n; i++ )
循环的次数是n,而循环结束以后,i的值是n。i是选择从0开始还是从1开始,是判断i<n还是判断i<=n,对循环的次数,循环结束后的变量的值都有影响

1.如果有固定次数,用for
2.如果必须执行一次,用do while
3.其他情况用while

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值