返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言 基础60题(3)
  • 621
分享到

C语言 基础60题(3)

语言基础 2023-01-31 07:01:12 621人浏览 独家记忆
摘要

第17题int sum_nth(unsigned int num, unsigned int n);功  能:求出给定自然数的指定位置的数字(个位为0,十位为1,......)参  数:num为给定的自然数;n为指定位置.返回值:>=

第17题
int sum_nth(unsigned int num, unsigned int n);
功  能:求出给定自然数的指定位置的数字(个位为0,十位为1,......)
参  数:num为给定的自然数;n为指定位置.
返回值:>=0,给定自然数的指定位置的数字; <0,不成功.
分  值:

//第17题
int sum_nth(unsigned int num,unsigned int n){
    if(num>=0){
        unsigned int i;
        if(num>10){
            for(i=1;i<=n;i++){
                num=num/10;
                if(num<10 && (n-i)>0)
                    return -1;
            } 
        }
        num=num%10;
        return num;
    }else{
    return -1;
    }
}

第18题
int sum_square(unsigned int num);
功  能:求出给定自然数的各位数字的平方和(例如 自然数1234的各位数字的平方和为30)
参  数:num为给定的自然数.
返回值:>=0,给定自然数的各位数字的平方和;<0,不成功.
分  值:

//第18题
int sum_square(unsigned int num){
    int sum=0;
    int temp;
    while(num>10){
        temp=num%10;
        sum=sum+temp*temp;
        num=num/10;
    }
    sum=sum+num*num;
    return sum;
}

第19题
int sort_acend(double* array, unsigned int n);
功  能:对给定数组中的数按升序排序
参  数:array为给定的数组;n为数组中元素的个数.
返回值:>=0,成功排序; <0,不成功.
分  值:

//第19题
//使用选择排序算法
int sort_ascend(double *arry, unsigned int n){
    unsigned int i,k;
    unsigned int lowIndex;
    for(i=0;i<n;i++){
        lowIndex=i;
        for(k=i+1;k<n;k++){
            if(*(arry+k)<*(arry+i))
                lowIndex = k;
        }
        double temp=*(arry+i);
        *(arry+i)=*(arry+lowIndex);
        *(arry+lowIndex)=temp;
    }

    bool flag1=true;
    for(i=0;i<n-1;i++){
        if(*(arry+i)<*(arry+i+1) && flag1){
            flag1=true;
        }else{
            flag1=false;
        }
    }
    
    if(flag1)
        return 1;
    return -1;
}

第20题
int sort_decend(double* array, unsigned int n);
功  能:对给定数组中的数按降序排序
参  数:array为给定的数组;n为数组中元素的个数.
返回值:>=0,成功排序; <0,不成功.
分  值:

//第20题
//插入排序算法
int sort_descend(double *arry, unsigned int n){
    unsigned int i,k;
    for(i=1;i<n;i++){
        for(k=i;k>0;k--){
            if(*(arry+k)>*(arry+k-1)){
                double temp=*(arry+k);
                *(arry+k)=*(arry+k-1);
                *(arry+k-1)=temp;
            }    
        }
    }
    bool flag1=true;
    for(i=0;i<n-1;i++){
        //printf("\n%.2f\n",*(arry+i));
        if(*(arry+i)>*(arry+i+1) && flag1){
            flag1=true;
        }else{
            flag1=false;
        }
    }
    
    if(flag1)
        return 1;
    return -1;
}

第21题
int search_bin(int* array, unsigned int n, int value);
功  能:用二分检索法(也称折半法,字典法等)找出给定数值在数组中位置的下标值
参  数:array为给定的数组;n为数组中元素的个数; value为要查找的数值.
返回值:>=0, 给定数值在数组中位置的下标; <0,未找到.
分  值:

//第21题
//二分检索法
int search_bin(int* array, unsigned int n, int value){
    
    int low=0,high=n-1,mid;//置当前查找区间上、下界的初值
    while(low<=high){
        if(*(array+low)==value)
            return low;
        if(*(array+high)==value)
            return high;
        //当前查找区间array[low..high]非空
        mid=low+((high-low)/2);
        //使用(low+high)/2会有整数溢出的问题
        if(*(array+mid)==value)
            return mid;//查找成功返回
        if(*(array+mid)<value)
            low=mid+1;//继续在array[mid+1..high]中查找
        else
            high=mid-1;//继续在array[low..mid-1]中查找
     
    }
    if(low>high)
        return-1;//当low>high时表示所查找区间内没有结果,查找失败
}

第22题
unsigned int factorial(unsigned int n);
功  能:求给定自然数的阶乘。
参  数:n为给定的自然数.
返回值:给定数的阶乘n!.
分  值:

//第22题

unsigned int factorial(unsigned int n){
    if(n==0||n==1){
        return 1;
    }else{
        return n*factorial(n-1);
    }

}

第23题
char*   strn2b(unsigned int n);
功  能:求出给定自然数的二进制字符串表示(例如,5的二进制字符串表示为“101”)
参  数:n为给定的自然数.
返回值:二进制字符串数组的首地址.
分  值:

//第23题
char*   strn2b(unsigned int n){
     char arr[32]={};//因为是无符号整数,所以二进制表示最长为32位
    for(int i=31;i>=0;i--){
        if((n & 0x1)==1){
            arr[i]='1';
        }else{
            arr[i]='0';
        }
        n=(n>>1);
    }

    return arr;
}


--结束END--

本文标题: C语言 基础60题(3)

本文链接: https://lsjlt.com/news/190932.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C语言 基础60题(3)
    第17题int sum_nth(unsigned int num, unsigned int n);功  能:求出给定自然数的指定位置的数字(个位为0,十位为1,......)参  数:num为给定的自然数;n为指定位置.返回值:>=...
    99+
    2023-01-31
    语言 基础
  • C 语言基础之初识 C 语言常量
    目录1、字面常量2、const修饰的常变量3、#define定义的标识符常量(也叫预处理)4、枚举常量C语言中的常量分为以下几种: 字面常量 const修饰的常变量...
    99+
    2024-04-02
  • 3. Python基础语法
    我们在文言文中经常会看到注释,注释可以帮助读者对文章的理解。代码中的注释也是一样,优秀的代码注释可以帮助读者对代码的理解。当然在代码编写过程中,注释的使用不一定只是描述一段代码,也可能的是对代码的调试。 Python注释一共有# 、'''...
    99+
    2023-01-31
    语法 基础 Python
  • C语言基础 strlen 函数
    目录一.strlen 函数简介二.strlen 函数实战一.strlen 函数简介 在C 语言中,char 字符串也是一种非常重要的数据类型,我们可以使用 strlen 函数获取字符...
    99+
    2024-04-02
  • C 语言基础之C语言的常见关键字
    目录​1、auto 2、register 3、signed和unsigned 4、typedef 5、extern 6、拓展首先我们简单的和这些关键字见见面(被高亮的关键...
    99+
    2024-04-02
  • 基础篇-脚本题(3)
    问题: [root@base tmp]# cat ent.txt 1 2 3 4 5 6 7 8 9 10 要求输出结果:1+2+3+4+5+6+7+8+9+10+=55 最好使用tr命令打印出 分析题后,想到最简单的解法就是循环拼接打...
    99+
    2023-01-31
    脚本 基础
  • C语言零基础入门(1)
    目录1. C语言简介1.1 C语言发展史1.2 C语言的特点1.3算法及其表示1.4常用算法介绍总结1. C语言简介 1.1 C语言发展史 C语言是一种广泛使用的面向过程的计算机程序...
    99+
    2024-04-02
  • C语言零基础入门(2)
    目录1. 数组1.1 一维数组1.1.1 一维数组的定义1.1.2 一维数组的初始化1.1.3 一维数组的引用1.2 二维数组及多维数组1.2.1 二维数组的定义1.2.2 二维数组...
    99+
    2024-04-02
  • C语言指针基础详解
    目录1.1:概述1.1.1:内存1.1.2:内存1.1.3:指针和指针变量1.2:指针基础知识1.2.1:指针变量的定义和使用1.2.2:通过指针间接修改变量的值1.2.3:指针的大...
    99+
    2024-04-02
  • C#语言入门基础介绍
    目录一、.NET 体系结构二、Hello world三、类型和变量四、程序结构前言: C#(读作“See Sharp”)是一种新式编程语言,不仅面向对象,还类型安全。 开发人员利用 ...
    99+
    2024-04-02
  • 详解C语言初阶基础
    目录1.什么是c语言2.初始化:3.变量和常量4.作用域与生命周期简单阐述:作用域:生命周期(存在与消失):作用域与生命周期的区别作用域:生命周期:5.    &...
    99+
    2024-04-02
  • C++在C语言基础上的优化
    目录 一、命名空间 1、命名空间的定义 2、命名空间的使用 二、输入&输出 三、缺省参数 1、缺省参数的概念 2、缺省参数的分类 四、函数重载 五、引用 1.引用的概念 2.引用的特性 3、引用和指针的区别 六、内联函数 七、基于范围的fo...
    99+
    2023-09-12
    c++ 算法
  • C 语言基础之C 语言三大语句注意事项
    目录1、分支语句 2、if语句 3、switch语句 3.1语句结构 4、循环语句 4.1 while循环(do while类似) 4.2 do while循环 4.3 for循环 ...
    99+
    2024-04-02
  • c语言 指针零基础讲解
    1.指针是什么(可能有点难理解) 指针的是啥? 指针实际上就是地址,地址就是系统给定的编号,编号就是一个个内存单元。 在某种情况来说指针=地址=编号=内存单元。 指针就是地址,顾名思...
    99+
    2024-04-02
  • C语言详解字符串基础
    目录一、字符串的概念二、字符数组与字符串三、字符串字面量的秘密四、字符串的长度五、小结一、字符串的概念 字符串是有序字符的集合 字符串是程序中的基本元素之一 C 语言中没有字符串的概...
    99+
    2024-04-02
  • 详解C语言初阶基础(2)
    目录1.选择语句(if)2.循环while循环for循环do-while循环补充总结1.选择语句(if) 我们先不讲switch,后面会补充。先来对简单地if进行了解。 我们已经知道...
    99+
    2024-04-02
  • c语言零基础自学难吗
    自学c语言对于零基础学习者有一定难度,但可克服,主要在于语法复杂、指针概念和内存管理相关。克服方法包括:从基础语法开始、多练习编码、利用资源、找寻导师、保持耐心。自学路线图涉及基本语法、...
    99+
    2024-04-13
    c语言
  • Python基础语法介绍(3)
    基本概念、特性 顺序存储相同/不同类型的元素 定义:使用()将元素括起来,元素之间用“,”括开 特性:不可变,不支持添加,修改,删除等操作 查询:通过下标查询元组指定位置的元素 其他 空元组定义:non_tuple = () 只包含一...
    99+
    2023-01-31
    语法 基础 Python
  • SQL语言基础
    1.定义 对数据库进行查询和修改操作的语言叫做SQL(Structured Query Language,结构化查询语言) SQL是一种数据库查询和程序设计语言,用于存储数据以及查询、更新和管理关系数据库系统; 与其他程序设计语言不同的是,...
    99+
    2020-08-11
    SQL语言基础 数据库入门 数据库基础教程 数据库 mysql
  • Swift语言基础
    swift基础 swift简介xcode项目文件语法变量与常量类型安全强制类型转换 运算符控制结构if语句switch语句 循环结构数组字典函数inout传递和地址传递函数类型函数...
    99+
    2023-09-17
    swift ios
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作