学习总结 11.28

一个字符串,存放在一个数组中,编程序将其改造之后输出:
(1)将S的所有第偶数个字符按照从大到小的次序放在S的后半部分;
(2)将S的所有第奇数个字符按照从小到大的次序放在S的前半部分;

解题思路:

原思路为挑出偶数位置的字符直接放在字符串的最后面,后来发现偶数位置字符需要从大到小排列;

改变策略为把偶数位置字符直接剪切到另一个数组中,运行并修改了几遍,发现输出的结果总是有问题,后来发现直接剪切后,原数组字符数量减少,奇偶位置的字符改变;

最终决定分出两组新数组,一组存放奇数位置数组,一组存放偶数位置数组,原数组保持不变用来判断奇偶位置,然后对两新数组内字符进行排序,最终合并·排好序的两数组并输出。

运行代码:
#include <stdio.h>
#include<string.h>
int main() {
    char a[15];
    gets(a);
    int n=strlen(a);
    char b[15]="", c[15]="";
    int B=0, C=0;
    for(int i=0;i<n;i++)
    {
        if((i+1)%2==0)
        {
            b[B]=a[i];
            B++;
        }
        else
        {
            c[C]=a[i];
            C++;
        }
    }
    b[B]='\0';
    c[C]='\0';
    int A;
    for(int i=0;i<C-1;i++)
    {
        for(int j=0;j<C-1-i;j++)
        {
            if(c[j]>c[j+1])
            {
                A=c[j];
                c[j]=c[j+1];
                c[j+1]=A;
            }
        }
    }
    for(int i=0;i<B-1;i++)
    {
        for(int j=0;j<B-1-i;j++)
        {
            if(b[j]<b[j+1])
            {
                A=b[j];
                b[j]=b[j+1];
                b[j+1]=A;
            }
        }
    }
    strcpy(a, c);
    strcat(a, b);
    printf("%s",a);
    return 0;
}
涉及知识点:

1.字符数组的输入与输出

2.数组内容的增删

3.冒泡排序

4.字符比大小等

我会吸取这次写题的思路与经验,尚未掌握的知识还有很多,学习之路还很长,继续努力!

### 实验总结 1. 使用 matplotlib 的 pyplot 模块绘制电影票房条形图,发现它能轻松将电影名称和票房数据直观呈现,可视化效果很棒,能让数据一目了然。不过,一开始遇到中文显示乱码问题,后来通过设置字体为 SimHei 并解决负号显示问题,才让图表中文正常显示[^1]。 2. 绘制条形图时,参数设置很关键。像条形的宽度、颜色等,不同设置会带来不同的视觉效果。例如,自定义颜色能让图表更美观,但需要了解颜色代码的使用方法,这得花点时间去学习和尝试[^1][^4]。 3. 为了让图表信息更清晰,添加数据标签、坐标轴标签和标题是必要的。但在调整 x 轴标签旋转角度时,要找到合适的角度,不然会影响标签的可读性。 4. 排序数据对分析很有帮助。将票房收入降序排序后再绘制条形图,能更直观地看到票房高低的对比情况。不过排序时要保证电影名称和票房数据的对应关系不变,否则数据就会混乱。 5. 绘制水平条形图和垂直条形图各有优势。水平条形图适合电影名称较长的情况,能避免名称重叠,但在设置 y 轴刻度标签时,要注意字体大小和布局,不然会显得拥挤。 6. 虽然 matplotlib 功能强大,但也需要不断实践才能熟练掌握。在实验过程中,要多参考官方文档和示例代码,遇到问题多尝试不同的解决方法,这样才能提高绘图能力。 ```python import matplotlib.pyplot as plt # 电影名称列表 a = ["流浪地球","复仇者联盟4:终局之战","哪吒之魔童降世","疯狂的外星人","飞驰人生","蜘蛛侠:英雄远征","扫毒2天地对决","烈火英雄","大黄蜂","惊奇队长","比悲伤更悲伤的故事","哥斯拉2:怪兽之王","阿丽塔:战斗天使","银河补习班","狮子王","反贪风暴4","熊出没","大侦探皮卡丘","新喜剧之王","使徒行者2:谍影行动","千与千寻"] # 票房收入列表 b = [56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,8.75,7.55,7.32,6.99,6.88,6.86,6.58,6.23,5.22] # 设置中文字体 plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False # 绘制条形图 plt.bar(a, b) # 添加数据标签 for i in range(len(a)): plt.text(i, b[i], b[i], ha='center') # 设置图表标题和坐标轴标签 plt.title('电影票房收入') plt.xlabel('电影名称') plt.ylabel('票房收入(亿元)') # 旋转 x 轴标签以便更好显示 plt.xticks(rotation=90) # 显示图形 plt.show() ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值