华为机试—整数数组排序(字符串输入输出)

#include<stdio.h>
/*
  编写一个程序,实现排序算法,用户输入证书序列,程序将所有证书从小到大排序并输出
  输入:数字序列,长度小于1024,两个数字之间以逗号分隔,所有数字均为非负整数,整数个数小于128
  输出:排序后的整数序列,两个数字之间以逗号分隔
 */
int main(int argc, char *argv[])
{
    int a[129];
    int i=0;
    scanf("%d",&a[i++]);
    char c;
    while(scanf("%c",&c)&&c!='\n')
    {
        scanf("%d",&a[i]);
        i++;
    }
    for(int j=0;j<i;++j)
        for(int k=j+1;k<i;++k)
        {
            if(a[j]>a[k])
            {
                int t=a[j];
                a[j]=a[k];
                a[k]=t;
            }
        }
    printf("%d",a[0]);
    for(int k=1;k<i;++k)
        printf(",%d",a[k]);
    printf("\n");
    return 0;
}

时间: 2024-10-25 20:09:26

华为机试—整数数组排序(字符串输入输出)的相关文章

华为机试—整数相除

两个整数相除,将结果用字符串返回.如果是循环小数,将循环的位用括号括起来. 函数原型为 void div(const int a,const int b,char *str) 输入:1 3 输出:0.(3) #include<iostream> #include<string> using namespace std; int maxn = 100; //设置字符串的最大位数 int reminder_exist[10000]; int reminder_pos[10000]; v

【华为机试练习】字符串最后一个单词的长度

题目描述计算字符串最后一个单词的长度,单词以空格隔开.输入描述:一行字符串,非空,长度小于5000.输出描述:整数N,最后一个单词的长度. 解法(C语言版): #include<stdio.h> #include<string.h> int main() { char str[5000]; int i, n, len; gets(str); len = strlen(str); n = 0; if(len != 0) for(i = len-1; (str[i] != ' ') &

【华为机试练习】字符串分隔

题目描述?连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组:?长度不是8整数倍的字符串请在后面补数字0,空字符串不处理.输入描述:连续输入字符串(输入2次,每个字符串长度小于100)输出描述:输出到长度为8的新字符串数组 解法(C语言版): #include<stdio.h> #include<string.h> char *outputstr(char *in, char *out) { int i; for(i = 0; i < 8; ++i) { if(

华为机试—回文字符串

给出一个长度不超过1000的字符串,判断它是不是回文(顺读,逆读均相同)的. #include <iostream> #include <cstring> using namespace std; int huiwen(char *a){ int len = strlen(a); int i,j=len-1; for(i=0;i<len/2;i++,j--){ if(a[i]!=a[j]){ return 0; } } return 1; } int main(){ char

2015华为机试——整数分割

题目描述: 一个整数可以拆分为2的幂的和,例如: 7 = 1+ 2 + 4 7 = 1 + 2 + 2 + 2 7 = 1 + 1 + 1 + 4 7 = 1 + 1 + 1 + 2 + 2 7 = 1 + 1 + 1 + 1 + 1 + 2 7 = 1 + 1 + 1 + 1 + 1 + 1 + 1 总共有六种不同的拆分方式 再比如: 4可以拆分成: 4 = 4, 4 = 1+1+1+1, 4 = 2+2, 4 = 1+1+2. 用f(n)表示n的不同拆分的种数,例如f(7) = 6. 要求读

华为机试—指针合并字符串

写一个程序实现功能:将两个字符串合并为一个字符串并且输出,用指针实现. #include <stdio.h> int main() { char str1[20]={"Hello "}, str2[20]={"World"}; char *p=str1, *q=str2; while( *p ) p++; while( *q ) { *p = *q; p++; q++; } *p = '\0'; printf("%s\n", str1

华为机试:删除字符串中出现次数最少的字符

题目描述 实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除.输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序. 输入描述: 字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节. 输出描述: 删除字符串中出现次数最少的字符后的字符串. 示例1 输入 abcdd 输出 dd Java:用两个数组来记录各个字符的个数,一个用来排序找出最小的字符出现次数,一个用来决定是否输出当前字符. 1 import java.util.Arrays; 2 i

【华为机试练习】字符串反转

题目描述写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串.例如:输入描述:输入N个字符输出描述:输出该字符串反转后的字符串 解法1(C语言版): #include<stdio.h> int main() { char str[1000]; int len, i, j; char temp; gets(str); len = strlen(str); for(i = 0, j = len - 1; i < j; ++i, --j) { temp = str[i]; str[i]

华为机试在线训练(4)

华为机试在线训练:字符串分隔 题目描述 ?连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组:?长度不是8整数倍的字符串请在后面补数字0,空字符串不处理. 输入描述: 连续输入字符串(输入2次,每个字符串长度小于100) 输出描述: 输出到长度为8的新字符串数组 输入例子: abc123456789 输出例子: abc000001234567890000000 代码: 1 import java.util.Arrays; 2 import java.util.Scanner; 3