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

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

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

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

题目一:

题目描述:

题目来源:图片整理

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

Lily使用的图片使用字符"A"到"Z"、“a"到"z”、"0"到"9"表示。

数据范围:每组输入的字符串长度满足 :1≤n≤1000

解题思路:

1.获取字符串

2.统计输入个数,并对字符从小到大进行排序

3.输出排序后的字符

代码实现:

#include<stdio.h>
#include<string.h>
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 。

解题思路:

若要使左侧数组之和与右侧数组之和相同,即左侧数组之和加中间元素加右侧数组之和为数组之和,即左侧数组之和乘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;
}

结果情况:

符合题目要求,问题得到解决。

总结:

文章到这里就要告一段落了,有更好的想法或问题,欢迎评论区留言。

希望今天的练习能对您有所收获,咱们下期见!

相关文章
|
6月前
|
存储 人工智能 安全
C语言:选择+编程(每日一练Day15)
C语言:选择+编程(每日一练Day15)
82 2
|
6月前
|
C语言
C语言:选择+编程(每日一练Day13)
C语言:选择+编程(每日一练Day13)
59 0
|
6月前
|
测试技术 C语言
C语言每日一练Day03——移除元素
C语言每日一练Day03——移除元素
|
6月前
|
C语言
C语言每日一练——Day02:求最小公倍数(3种方法)
C语言每日一练——Day02:求最小公倍数(3种方法)
|
6月前
|
C语言
C语言每日一练——Day01:求最大公约数(三种方法)
C语言每日一练——Day01:求最大公约数(三种方法)
|
6月前
|
存储 人工智能 C语言
C语言:选择+编程(每日一练Day16)
C语言:选择+编程(每日一练Day16)
55 3
|
6月前
|
C语言
C语言:选择+编程(每日一练Day14)
C语言:选择+编程(每日一练Day14)
59 2
|
6月前
|
编译器 C语言
C语言:选择+编程(每日一练Day12)
C语言:选择+编程(每日一练Day12)
54 2
|
6月前
|
C语言
C语言:选择+编程(每日一练Day11)
C语言:选择+编程(每日一练Day11)
47 2
|
6月前
|
C语言
C语言:选择+编程(每日一练Day10)
C语言:选择+编程(每日一练Day10)
56 1