C语言每日一练--------Day(8)

本专栏为c语言练习专栏,适合刚刚学完c语言的初学者。本专栏每天会不定时更新,通过每天练习,进一步对c语言的重难点知识进行更深入的学习。

今日练习题关键字:图片整理 寻找数组下标

在这里插入图片描述

博主csdn个人主页:小小unicorn
⏩专栏分类:C语言天天练
代码仓库:小小unicorn的代码仓库
关注我带你学习编程知识

Day1

  • 题目一:
    • 题目描述:
    • 解题思路:
    • 代码实现:
    • 结果情况:
  • 题目二:
    • 题目描述:
    • 解题思路:
    • 代码实现:
    • 结果情况:
  • 总结:

题目一:

题目描述:

题目来源:图片整理
Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。请大家给Lily帮忙,通过代码解决。

Lily使用的图片使用字符"A"到"Z"、“a"到"z”、"0"到"9"表示。
数据范围:每组输入的字符串长度满足 :1≤n≤1000

C语言每日一练--------Day(8)_第1张图片

解题思路:

1.获取字符串
2.统计输入个数,并对字符从小到大进行排序
3.输出排序后的字符

代码实现:

#include
#include

int main() 
{
    char str[1001];
    char tmp;

    scanf("%s", str);
    //获得字符个数并排序
    for (int i = 0; i < strlen(str); i++) 
    {
        for (int j = i + 1; j < strlen(str); j++) 
        {
            if (str[i] > str[j]) {
                tmp = str[i];
                str[i] = str[j];
                str[j] = tmp;
            }
        }
    }
    //输出排序后的字符
    for (int i = 0; i < strlen(str); i++) 
    {
        printf("%c", str[i]);
    }
    return 0;
}

结果情况:

在这里插入图片描述
符合题目要求,问题得到解决。

题目二:

题目描述:

题目来源:寻找数组的中心下标
给你一个整数数组 nums ,请计算数组的 中心下标 。

数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。
如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。
如果数组有多个中心下标,应该返回 最靠近左边 的那一个。如果数组不存在中心下标,返回 -1 。

C语言每日一练--------Day(8)_第2张图片

解题思路:

若要使左侧数组之和与右侧数组之和相同,即左侧数组之和加中间元素加右侧数组之和为数组之和,即左侧数组之和乘2加下一位为数组之和或右侧数组之和乘2加下一位为数组之和 由于返回最左侧的元素,即从i=0开始循环

1.对所有元素求和
2.从i=0开始,若满足num*2+nums[i]==sum则返回下标,对所有元素遍历后都没有元素符合条件,返回-1

代码实现:

int pivotIndex(int* nums, int numsSize)
{
    int sum=0,num=0;
    for(int i=0;i<numsSize;i++)
    {
        sum+=nums[i];
    }
    for(int i=0;i<numsSize;i++)
    {
        if(num*2+nums[i]==sum)
        {
            return i;
        }
        num+=nums[i];
    }
    return -1;
}

结果情况:

C语言每日一练--------Day(8)_第3张图片
符合题目要求,问题得到解决。

总结:

文章到这里就要告一段落了,有更好的想法或问题,欢迎评论区留言。
希望今天的练习能对您有所收获,咱们下期见!

你可能感兴趣的:(c语言天天练,c语言,寻找下标)