本专栏为c语言练习专栏,适合刚刚学完c语言的初学者。本专栏每天会不定时更新,通过每天练习,进一步对c语言的重难点知识进行更深入的学习。
今日练习题关键字:图片整理 寻找数组下标
博主csdn个人主页:小小unicorn
⏩专栏分类:C语言天天练
代码仓库:小小unicorn的代码仓库
关注我带你学习编程知识
题目来源:图片整理
Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。请大家给Lily帮忙,通过代码解决。
Lily使用的图片使用字符"A"到"Z"、“a"到"z”、"0"到"9"表示。
数据范围:每组输入的字符串长度满足 :1≤n≤1000
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 。
若要使左侧数组之和与右侧数组之和相同,即左侧数组之和加中间元素加右侧数组之和为数组之和,即左侧数组之和乘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;
}
文章到这里就要告一段落了,有更好的想法或问题,欢迎评论区留言。
希望今天的练习能对您有所收获,咱们下期见!