zoukankan      html  css  js  c++  java
  • C语言 百炼成钢15

    //题目43:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出
    //圈子,问最后留下的是原来第几号的那位。
    
    #include<stdio.h>
    #include<stdlib.h>
    
    //分析:用while循环实现
    
    //定于数组的大小
    #define N 6
    
    void main(){
        int a[N] = { 1, 2, 3 ,4,5,6};
        //定义报数变量
        int k = 1;
        //定义数组下标变量
        int index = 0;
        //定义数组有用元素变量
        int num = N;
        while (num != 1){
            //确保元素下标不会越界
            if (index>N - 1)
            {
                index = 0;
            }
            //当遇到已经删除的元素,要跳到下一个元素上
            if (a[index] != 0)
            {
                if (k == 3)
                {
                    //删除已经报3的元素
                    a[index] = 0;
                    //实际元素个数减1
                    num--;
                    //遇到3后  重置报数
                    k = 1;
                }
                else{
                    k++;
                }
                index++;
            }
            else{
                index++;
            }
            
        }
        for (int i = 0; i < N; i++)
        {
            if (a[i]!=0)
            {
                printf("最后留下的是第%d号",a[i]);
            }
        }
    
        system("pause");
        
    }

    //题目44:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
    
    #define _CRT_SECURE_NO_WARNINGS
    #include<stdio.h>
    #include<stdlib.h>
    
    //分析:自已一个字符串数组
    
    void main(){
        char str[50] = { 0 };
        printf("请输入一个字符串
    ");
        scanf("%s",str);
        int num = 0;
        while (str[num]!=''){
            num++;
        }
        printf("字符串的长度是%d
    ", num);
        system("pause");
    }

    //题目45:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数
    //1 / 1 + 1 / 3 + ... + 1 / n(利用指针函数)
    
    #define _CRT_SECURE_NO_WARNINGS
    #include<stdio.h>
    #include<stdlib.h>
    
    //分析:知识点函数指针的调用
    
    //偶数
    double Even(int n){
        double s = 0.0;
        for (int i = 2; i <=n; i=i+2)
        {
            s += 1.0 / i;
        }
        return s;
    }
    
    
    //奇数 Odd
    double Odd(int n){
        double s = 0.0;
        for (int i = 1; i <= n; i=i + 2)
        {
            s += 1.0 / i;
        }
        return s;
    }
    
    
    void main(){
        int num = 0;
        printf("请输入一个数字
    ");
        scanf("%d",&num);
        //定义函数指针,函数指针的定义必须是(*p),不然会报错
        double (*p)(int n);
        if (num%2==0)
        {
            //如果是偶数
            p = Even;
        }
        else{
            p = Odd;
        }
        printf("函数的值是%lf",p(num));
        system("pause");
    }

  • 相关阅读:
    linux 静态库和动态库(共享库)的制作与使用
    实现linux mkdir命令
    行间距和文本样式
    单位和字体
    html标签2
    css层叠样式表
    html标签
    html简介
    数据数组
    Redis的使用
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/5158436.html
Copyright © 2011-2022 走看看