【C语言】初阶算法相关习题(一)

06-01 742阅读

【C语言】初阶算法相关习题(一)

个人主页

【C语言】初阶算法相关习题(一)

文章目录

  • ⭐一、数字在升序数组中出现的次数
  • 🏠二、整数转换
  • 🚀三、至少是其他数字两倍的最大数
  • 🏝️四、字符个数的统计
  • 🎄五、自除数
  • 🎡六、除自身以外数组的乘积
  • 🎉七、两个数组的交集

    ⭐一、数字在升序数组中出现的次数

    题目描述:数字在升序数组中出现的次数

    【C语言】初阶算法相关习题(一)

    解题思路:由于数组是升序的,所以我们可以直接采用暴力的方法,遍历数组,统计数组中出现这个数字的次数即可解决。

    代码实现:

    int GetNumberOfK(int* nums, int numsLen, int k ) {
        // write code here
        int i = 0;
        int count = 0;
        for(i=0;i
            if(nums[i] == k)
            {
                count++;
            }
        }
        return count;
    }
    
        int c = A ^ B;
        int count = 0;
        int i = 0;
        for(i=0;i
            if((c & 1) == 1)
            {
                count++;
            }
            c = 1;
        }
        return count;
    }
    

    🚀三、至少是其他数字两倍的最大数

    题目描述:至少是其他数字两倍的最大数

    【C语言】初阶算法相关习题(一)

    解题思路:

    1.创建一个max变量表示最大值,secondmax表示次大值,m用于记录最大值的下标。

    2.遍历数组,如果当前值大于 max,更新 secondmax 为原来的 max,并将 max 更新为当前值,同时记录最大值的索引m。否则,如果当前值大于 secondmax,更新 secondmax。

    3.遍历结束后,判断 max 是否大于等于 2 × secondmax,并根据条件返回结果。

    代码实现:

    int dominantIndex(int* nums, int numsSize) {
        int max = 0;
        int secondmax = 0;
        //记录最大值的下标
        int m = 0;
        for(int i = 0;i
            if(nums[i]  max)
            {
                secondmax = max;
                max = nums[i];
                m = i;
            }
            else if(nums[i] > secondmax)
            {
                secondmax = nums[i];
            }
        }
        return (max >= (2 * secondmax)) ? m:-1;
    }
    

    🏝️四、字符个数的统计

    题目描述:字符个数的统计

    【C语言】初阶算法相关习题(一)

    解题思路:

    1.定义一个字符数组 a 用于存储输入的字符串。

    2.定义一个辅助数组 str,大小为 128,用于记录每个字符是否出现过。

    3.使用 strlen函数 获取输入字符串的长度。

    4.遍历输入字符串的每个字符,利用 str 数组记录字符的出现情况,并统计不同字符的数量,统计完后将改位置的值设为1,避免重复计算。

    5.最后输出统计结果即可。

    代码实现:

    #include 
    #include 
    int main() {
        char a[500];
        char str[128] = {0};
        int count = 0;
        scanf("%s",a);
        int len = strlen(a);
        for(int i = 0;i
            if(str[a[i]] == 0)
            {
                count++;
                str[a[i]] = 1;
            }
        }
        printf("%d\n",count);
        return 0;
    }
    
        int tmp,flag;
        tmp = nums;
        while(tmp  0)
        {
            flag = tmp % 10;
            if(flag == 0 || nums % flag != 0)
            {
                return false;
            }
            tmp /= 10;
        }
        return true;
    }
    int* selfDividingNumbers(int left, int right, int* returnSize) {
        int* result = (int*)malloc(sizeof(int) * (right - left + 1));
        int count = 0;
        for(int i = left;i 
            if(jungeNumber(i))
            {
                result[count] = i;
                count++;
            }
        }
        *returnSize = count;
        return result;
    }
    
        int* result = (int*)malloc(sizeof(int) * numsSize);
        *returnSize = numsSize;
        //先乘左边的,再乘右边的
        int left = 1,right = 1;
       for(int i = 0;i
            result[i] = left;
            left *= nums[i];
       }
        for(int i = numsSize - 1;i=0;i--)
        {
            result[i] *= right;
            right *= nums[i];
        }
        return result;
    }
    
        int len = nums1Size  nums2Size ? nums1Size : nums2Size;
        int* result = (int*)malloc(sizeof(int) * len);
        int k = 0;
        for(int i = 0;i
            int flag = 0;
            for(int j = 0;j
                if(nums1[i] == nums2[j])
                {
                    flag = 1;
                    nums2[j] = -1;
                }
            }
            if(flag == 1)
            {
                result[k++] = nums1[i];
            }
        }
        *returnSize = k;
        return result;
    }
    
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

相关阅读

目录[+]

取消
微信二维码
微信二维码
支付宝二维码