【华为OJ平台练习题】

/*
描述:
	输入整型数组和排序标识,对其元素按照升序或降序进行排序

接口说明
原型:
void sortIntegerArray(Integer[] pIntegerArray, int iSortFlag);
输入参数:
    Integer[] pIntegerArray:整型数组
int  iSortFlag:排序标识:0表示按升序,1表示按降序
输出参数:
    无
返回值:
    void
输入
	1、输入需要输入的整型数个数
	2、输入数组组
	3、输入排序标识

输出
	输出排好序的数字
	最后一个无空格
如下例子

样例输入	8 1 2 4 9 3 55 64 25 0
样例输出	1 2 3 4 9 25 55 64
*/

#include <iostream>

using namespace std;

void myswap(int &a,int &b)
{
	int temp;
	temp = b;
	b=a;
	a=temp;
}
void sortIntegerArray(int p[],int n,int flag)
{
	for(int a = 1;a<n;a++)		//冒泡排序法
	{
		for(int b=1;b<n-a+1;b++)
		{
			if(p[b-1]<p[b])
			myswap(p[b-1],p[b]);
		}
	}
	if(flag==1)
	{
		for(int a=0;a<n;a++)
			cout<<p[a]<<" ";
	}
	else if(flag==0)
	{
		for(int a=0;a<n;a++)
			cout<<p[n-a-1]<<" ";
	}
}

int qqmain()
{
	while(1)
	{
		int n,k;
		cout<<"请输入数组元素个数:" <<endl;
		cin>>n;

		cout<<"请输入数组元素:" <<endl;
		int *p = new int[n];
		for(int m=0;m<n;m++)
			cin>>p[m];

		cout<<"请选择升序或者降序,升序按0,降序按1"<<endl;
		cin>>k;

		cout<<"原序列:";
		for(int m=0;m<n;m++)
			cout<<p[m]<<" ";

		cout<<endl<<"排序后:"<<endl;
		sortIntegerArray(p,n,k);
	}
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-10 10:55:16

【华为OJ平台练习题】的相关文章

【华为OJ平台练习题】求最大公共子串的个数和元素

1.原题是求出最大公共子串的个数即可 原理:利用二维矩阵排列的方式,将俩字符串进行比较 #include <iostream> #include <vector> using namespace std; int prcs_2Strs(const char* s1,const char* s2) { int maxSameLength = 0; int L1 = strlen(s1); int L2 = strlen(s2); if(L1==0 || L2==0) //判断字符串是

【华为OJ平台练习题】Ascii码排序

//描述 //Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好.请大家给Lily帮忙,通过C语言解决. // // //知识点 字符串 //运行时间限制 0M //内存限制 0 //输入 //Lily使用的图片包括"A"到"Z"."a"到"z"."0"到"9".输入字母或数字个数不超过1024. // // //输出 /

【华为OJ平台练习题】统计一段字符串中含有空格、英文、数字的个数

//统计一段字符串中含有空格.英文.数字的个数 #include <iostream> using namespace std; void processString(char* s) { int n = strlen(s); int kg=0; int shuzi=0; int yingwen=0; if(n>0) { for(int a=0;a<n;a++) { if(s[a]==' ') kg++; if(s[a]<='9'&&s[a]>='0')

【华为OJ平台练习题】求最后一个单词长度

//描述 //计算字符串最后一个单词的长度,单词以空格隔开. //知识点 字符串,循环 //运行时间限制 0M //内存限制 0 //输入 //一行字符串,长度小于128. //输出 //整数N,最后一个单词的长度. //样例输入 hello world //样例输出 5 #include <iostream> using namespace std; int countLastWordLength(char *s) { int counter=0; int lg = strlen(s); f

华为OJ平台——字符串分隔

题目描述: 连续输入字符串,请按长度为8拆分每个字符创 后输出到新的字符串数组: 长度不是8整数倍的字符串请在后面补数字0,空字符串不处理 输入 连续输入字符串(输入两次,每个字符长长度小于100)输出 输出到长度为8,的新字符串数组样例输入 abc 123456789样例输出 abc00000 12345678 90000000 思路: 都是直接处理,没有具体的方法而言 注意点: 华为的OJ平台的输入输出有点坑,好多次的程序都在这里出问题,在Eclipse上运行的结果没问题,然后在OJ上就是编

华为OJ平台——矩阵乘法

题目描述: 如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z列的矩阵C. 输入: 1.第一个矩阵的行数 2.第一个矩阵的列数(也是第二个矩阵的行数) 3.第二个矩阵的列数 4.第一个矩阵的值 5.第二个矩阵的值 输出: 输出两个矩阵相乘的结果 样例输入 2 2 2 3 8 8 0 9 0 18 9 样例输出 171 72 72 0 思路: 题目意思很简单,只是实现两个矩阵乘法功能,要注意的一点是输出的格式. OJ平台中对输出的格式非常严格,经过多次尝试,验证此

华为OJ平台试题 —— 数组:字符串反转

字符串反转 代码: /* * 接受一个字符串,然后输出该字符串反转后的字符串. */ #include <stdio.h> #include <string.h> /* * 字符串反转函数 */ char *revstr(char *str, int len) { char *start = str; char *end = str + len - 1; char ch; if (str != NULL) { while (start < end) { ch = *start

华为OJ平台——查找组成一个偶数最接近的两个素数

1 import java.util.Scanner; 2 3 /** 4 * 问题描述:任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况, 5 * 本题目要求输出组成指定偶数的两个素数差值最小的素数对,其中 5 < n <= 10000 6 * eg:输入20,输出7 13 7 */ 8 public class PrimePair { 9 10 public static void main(String[] args) { 11 Scanner cin = ne

华为OJ平台——百钱买百鸡问题

题目描述: 元前五世纪,我国古代数学家张丘建在<算经>一书中提出了“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一. 百钱买百鸡,问鸡翁.鸡母.鸡雏各几何? 思路: 这道题很简单,假设鸡翁 i 只, 鸡母 j 只, 则有 i + j + k = 100 5*i + 3*j + k/3 = 100 由以上两个等式我们可以推出: j = 25 - i * 7/4 ; k = 75 + i * 3/4 ; 由于i. j. k 必须是0或正整数,所以 i 必须是4的倍数,因此我们下面的程序中也是