23/2/7学习记录

1.连续输入带空格的字符串或者字符时使用while( ~scanf( "%c", &str) ) 注意HJ4: 字符串分割这一题目

2.进制转换在c语言中可以直接输入 scanf( "%x", &input),输出printf("%d",input)由此转换;也可以由下列函数转换

#include <stdio.h>
#include <string.h>
#include <math.h>
 
int hexToDec(const char *str) {
    int ans = 0, t = 0;
    for (int i = strlen(str) - 1; str[i]; i--) {
        if (str[i] >= '0' && str[i] <= '9') {
            ans += (str[i] - '0') * pow(16, t++);
        } else {
            ans += (str[i] - 'A' + 10) * pow(16, t++);
        }
    }
    return ans;
}
 
int main() {
    char str[10] = {0};
    while (~scanf("0x%s", str)) {
        getchar();
        printf("%d\n", hexToDec(str));
    }
    return 0;
}

3. 求质数因子,可以运用头文件<math.h>中的sqrt( )函数,若 i 循环大于所求数字的开方则其质数就是所求数字

4. 快速排序算法qsort( ) 即void qsort(void *base, size_t nitems, size_t size,int (*compar)(const void *, const void*) )

参数:base--指向要排序数组第一个元素的指针,一般为数组名

nitems--由base指向的数组元素个数

size--数组中每个元素的大小,一般用sizeof( )求

compar--用来比较两个元素的函数,一般由用户自己定义

5.scanf( )函数输入字符时,如果scanf( "%c %c", &a, &b); printf( )如果输入想输入a=' N', b=' O', 输入N O时打印出来显示"N ",

第二个字符为' ',正确输入方法为scanf( "%c%*c%c", &a, &b); /*c这是能抑制字符输入,所以最后结果能输出是NO,无论在N与O之间输入任何一个字符都不会被读取

#我的实习求职记录#
c编程学习记录 文章被收录于专栏

为了华为od机试刷题学习记录

全部评论
完全看不懂,路过路过
点赞 回复 分享
发布于 2023-02-10 09:57 山东
不愧是大佬,真厉害
点赞 回复 分享
发布于 2023-02-10 09:36 山东

相关推荐

2025-12-18 20:31
湖南大学 算法工程师
饿魔:没人说?我来牛美孩
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务