蓝桥杯-基础练习题(自我总结)(持续更新中...)

前言

        作为第一次参加蓝桥杯的小白,我特别想创建一个专门的文章来记录这几个月的练习过程,没怎么写过文章,所以文章内容会很呆板,再加上之前学习的c++差不多已经忘光了。希望各位大佬看到这篇文章时,可以为我提一些意见,这些意见就是我最大的鼓励!

        在练习的过程中难免会遇见对于我来说很有价值的问题,各位大佬可以忽略自我总结部分,因为主要是为我而写,就写的很差T T。

        在练习之前,需要选择一个编译器来提升代码的熟练度,这里我直接使用的是蓝桥杯提供的dev-cpp软件,当然也可以用VsCode,只要写全了头文件,对于训练过程没有太大的影响。

一、数列排序

问题:给定一个长度为n的数列,将这个数列按从小到大的顺序排列。(1<=n<=200)

#include <iostream>
#include <stdio.h>
#include <stdlib.h
#define Maxsize 200
#define Minsize 1

using namespace std;

void Order(int *data,int num)
{
	int i,j;
	for(i=0;i<num-1;i++)
	{
		for(j=0;j<num-1;j++)
		{
			if(*(data+j)>*(data+j+1))
			{
				swap(*(data+j),*(data+j+1));
			}
		}
	}
	for(i=0;i<num;i++)
	{
		printf("%d ",*(data+i));
	}
}

int main()
{
	int num;//数组长
	int *data;
	scanf("%d",&num);
	if(num<Minsize || num>Maxsize)
	{
		printf("请输入合法数组长!请重新输入:");
		scanf("%d",&num);
	}
	data=(int *)malloc(num*sizeof(int));
	for(int i=0;i<num;i++)
	{
		cin >>data[i];
	}
	Order(data,num);
	return 0;
}

结果:

本题总结:

  1. 在蓝桥杯的比赛中,使用的是老版软件Dev-cpp,因此在写c++时的头文件要齐全,如这道题中,原本我只写了<iostream>的头文件,导致printf、scanf和malloc函数编译器无法识别,因此要写全所有的头文件!!!!
  2. 在想输入一串数组数据又不想只能用回车当间隔符,可以不使用scanf的标准输入,而使用cin输入流,因为cin中输入空格等空白符是不会记录下来的,因此不仅可以用回车还可以用空格、制表符等等。等待到所有的数组数据输入完成,回车就可以退出cin输入流。
  3. swap()函数在c中的algorithm.h头文件中,在c++中的iostream.h头文件中。swap()中函数的形参设为指针,然后将指针上对应的数值进行交换,地址上的值就会改变。由于传递的是两个变量的内存地址(指针)使得我们可以直接操作对应的值。
    void swap(int &a, int &b)
    {
        int temp = a;
        a = b;
        b = temp;
    }
    
  4. 冒泡排序学习

(原文:JS-Sorting-Algorithm/bubbleSort.md at master · hustcc/JS-Sorting-Algorithm · GitHub

二、十六进制转八进制(本题代码内容参考他人,非原创)

问题:给定n个十六进制正整数,输出它们对应的八进制数。

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
using namespace std;
#define Maxsize 10
#define Minsize 1

int main()
{
	int num;
	cin >>num;
	for(int i=0;i<num;i++)
	{
		string sixteen;
		string eight;
		string two;
		cin >>sixteen;
		for(int j=0;j<sixteen.length();j++)
		{
			switch(sixteen[j])
			{
				case '0':two+="0000";break;
				case '1':two+="0001";break;
				case '2':two+="0010";break;
				case '3':two+="0011";break;
				case '4':two+="0100";break;
				case '5':two+="0101";break;
				case '
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值