欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

基础循环计算篇

程序员文章站 2022-07-12 08:11:04
...

循环计算篇

log2xlog_2x的计算

#include <stdio.h>
int main()
{
    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);
    return 0;
}

此处将x的值赋予t,是为了计算之前保存原始的值

计数循环

#include <stdio.h>
int main()
{
    int count =100;
    while ( count >=0) {
        printf("%d\n",count);
        count --;
    }
    printf("发射!\n");
    return 0;
}

循环执行次数?循环停下时,输出为0吗?结束循环时,count的值。(注意6、7互换之后的执行过程)

设count的值为3

count 输出
3 3
2 2
1 1
0 0
-1

执行循环次数101次,输出为-1,count值为-1

猜数游戏

  1. 计算机随机想一个数,记在变量number里;
  2. 一个负责计次数的变量count初始化为0;
  3. 让用户输入一个数字a;
  4. count递增(加一)
  5. 判断a和number的大小关系,如果a大,就输出“大”;如果a小就输出“小”
  6. 若a和number不相等,程序转回第3步;
  7. 否则,程序输出“猜中”和次数,然后结束

随机数:每次召唤rand()就得到一个随机的整数

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    srand(time(0));
    int number = rand()%100+1;
    //x%n的结果是【0,n-1】的一个整数
    int count = 0;
    int a = 0;
    printf("我已经想好了一个1到100之间的数。\n");
    do {
        printf("请猜这个1到100之间的数:");
        scanf("%d", &a);
        count ++;
        if ( a > number ) {
            printf("你猜的数大了\n");
        } else if ( a < number ) {
        printf("你猜的数小了。\n");
        }
    } while ( a != number);

    printf("太好了,你用了%d次就猜到了答案。\n", count);
    return 0;
}

平均数

基础循环计算篇

#include <stdio.h>
int main()
{
    int number;
    int sum = 0;
    int count = 0;
    scanf("%d", &number);
    while( number != -1) {
        sum += number;
        count++;
        scanf("%d", &number);
        //继续读取下一个整数,否则会陷入死循环
    }
//    do{
//    scanf("%d", &number);
//    if ( number != -1) {
//        sum += number;
//        count++;
//        }
//    } while ( number != -1);
//    scanf("%d", &number);
//	  需要判断两次number
    printf("%f\n", 1.0*sum/count);

    printf("%d\n", count);
    return 0;
}

整数的分解

基础循环计算篇

#include <stdio.h>
int main()
{
    int x;
    scanf("%d", &x);

    int digit;
    int ret = 0;

    while( x>0) {
        digit = x%10;
        //printf("%d\n", digit);
        ret = ret *10 + digit;
        printf("x=%d,dight=%d,ret=%d\n", x, digit, ret);
        x/=10;
    }
    printf("%d", ret);
    return 0;
}
//整数除外

700逆序

#include <stdio.h>
int main()
{
    int x;
    scanf("%d", &x);

    int digit;
    int ret = 0;
    while( x>0) {
        digit = x%10;
        printf("%d", digit);
        ret = ret *10 + digit;
        x/=10;
    }
    return 0;
}

相关标签: 循环