蓝桥杯基础练习

瘦欲@ 提交于 2020-02-14 17:51:54

(1)序列排序
问题描述
给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200
输入格式
第一行为一个整数n。
第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。
输出格式
输出一行,按从小到大的顺序输出排序后的数列。
样例输入
5
8 3 6 4 9
样例输出
3 4 6 8 9

代码

#include<stdio.h>
int s;
int main()
{
	int n,i;
	scanf("%d",&n);
	int a[201];
	for(i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
	}
	int j;
	for(i=0;i<n;i++)
	{
		for(j=i+1;j<n;j++)
		{
		if(a[i]>a[j])
		{
			s=a[j];
			a[j]=a[i];
			a[i]=s;
		}
	}
	}
	for(i=0;i<n;i++)
	{
		printf("%d ",a[i]);
	}
	return 0;
}

(2)进制转换
十六进制转十进制
问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
代码

#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
    char a[8];
    int i;
	scanf("%s",a);
    int l=strlen(a);//计算字符串长度
    long long ans=0;//不超过8位的正的十六进制数字符串
    for(i=0; i<l; i++)
    {
        if(a[i]>='0'&&a[i]<='9')
            ans+=(a[i]-'0')*pow(16,l-1-i);
        else
            ans+=(a[i]-'A'+10)*pow(16,l-1-i);
    }
    printf("%lld\n",ans);
    return 0;
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!