华为历年机试题型总结系列(七)

18.身高排序

输入一组身高在170到190之间(5个身高),比较身高差,选出身高差最小的两个身高;若身高差相同,选平均身高高的那两个身高;从小到大输出:

如输入:170 181 173 186 190 输出:170 173

#include

int main(void)
{
     int pInputStr[5]={0};
     int pOutputStr[2]={0};
     int height_diverse[4]={0};
     int i,j,temp,min_diverse=100;
  
     printf("Input 5 heights:\n");
     for(i=0;i<5;++i)
         scanf("%d",&pInputStr[i]);
     
     for(i=0;i<4;++i)
     {
           for(j=0;j<4-i;++j)
           {
                if(pInputStr[j]>pInputStr[j+1])   //冒泡升序排列
                {
                        temp=pInputStr[j];
                        pInputStr[j]=pInputStr[j+1];
                        pInputStr[j+1]=temp;
                 }
            }
     }

     for(i=0;i<4;++i)
         height_diverse[i]=pInputStr[i+1]-pInputStr[i]; //升序排列,相邻之间的差为最小差

     for(i=0;i<4;++i)
         min_diverse=(min_diverse

19.数字大小

输入一串字符,只包含“0-10”和‘,’找出其中最大和最小数字(可能不止一个),输出最后剩余数字。如输入:3,3,4,5,6,77 输出:4,5,6 输入:2,5,4,10,5,2 输出:5,4,5

#include
#include

void DeleteMinMax(char *pInputStr, int StrLength, int *pOutputStr)
{
     int i,j=0,k=0,max_number=0,min_number=50;
     int pOutputStr_Int[50]={0};
     for(i=0;ipOutputStr_Int[i])?max_number:pOutputStr_Int[i];
            min_number=(min_number


你可能感兴趣的:(华为机试,C/C++)