zoukankan      html  css  js  c++  java
  • 华为机试再回忆--第二题

    题目如下:

    题目:选定数组最大最小元素位置并输出

    描述:输入一组10个整数的数组(数组元素之间用逗号分隔),最大的与最后一个元素交换,最小的与第一个元素交换,输出交换前与交换后的数组

    例如:输入:56,23,45,0,122,26,53,100,2,32

           输出:56,23,45,0,122,26,53,100,2,32;0,23,45,56,32,26,53,100,2,122

    说明:1.数组元素之间用逗号,数组交换前后两项用分号分隔

           2.当输入的数组中的元素不是整数时,则输出:input error,当输入数组元素个数不是10时则输出:input error

    本题比较简单:需要的注意的是把输入的字符串转换为整型数组以及边界条件的判断

    代码如下:

      1 #include <iostream>
      2 #include <string>
      3 using namespace std;
      4 
      5 #define ArraySize 10
      6 
      7 int main()
      8 {
      9     string s;
     10     cin>>s;
     11     for(int i=0;i<s.length();i++)
     12     {
     13         if(s[i]=='.')
     14         {
     15             cout<<"input error"<<endl;
     16             return 0;
     17         }
     18     }
     19     
     20     int *InputArray=new int[ArraySize];
     21     for(i=0;i<ArraySize;i++)
     22     {
     23         InputArray[i]=0;
     24     }
     25     int count=0;
     26     int sum=0;
     27     i=0;
     28     int temp;
     29     while(true)
     30     {
     31         if(s[i+1]!=','&&(i+1)!=s.length())
     32         {
     33             sum=sum*10+(s[i]-'0')*10;
     34         }
     35         else
     36         {
     37             sum=sum+(s[i]-'0');
     38             temp=sum;
     39             InputArray[count++]=sum;
     40             if(i==s.length()-1)
     41             {
     42                 break;
     43             }
     44 
     45             sum=0;
     46             i=i+2;
     47             continue;
     48         }
     49         i++;
     50         
     51     }
     52 
     53     if(count!=10)
     54     {
     55         cout<<"input error"<<endl;
     56         return 0;
     57     }
     58 
     59     for(i=0;i<ArraySize;i++)
     60     {
     61         if(i!=(ArraySize-1))
     62             cout<<InputArray[i]<<",";
     63         else
     64             cout<<InputArray[ArraySize-1]<<";";
     65     }
     66 
     67     int MaxIndex=0;
     68     int MinIndex=0;
     69 
     70     for(i=1;i<ArraySize;i++)
     71     {
     72         if(InputArray[i]>=InputArray[MaxIndex])
     73         {
     74             MaxIndex=i;
     75         }
     76 
     77         if(InputArray[i]<=InputArray[MinIndex])
     78         {
     79             MinIndex=i;
     80         }
     81 
     82     }
     83 
     84     int temp1,temp2;
     85     temp1=InputArray[MinIndex];
     86     InputArray[MinIndex]=InputArray[0];
     87     InputArray[0]=temp1;
     88 
     89     temp2=InputArray[MaxIndex];
     90     InputArray[MaxIndex]=InputArray[ArraySize-1];
     91     InputArray[ArraySize-1]=temp2;
     92 
     93     for(i=0;i<ArraySize;i++)
     94     {
     95         if(i!=(ArraySize-1))
     96             cout<<InputArray[i]<<",";
     97         else
     98             cout<<InputArray[ArraySize-1];
     99     }
    100     cout<<endl;
    101 
    102     delete[] InputArray;
    103     InputArray=NULL;
    104     return 0;
    105 }

    运行截图:

  • 相关阅读:
    Eclipse SVN 安装注意事项
    Linux添加环境变量与GCC编译器添加INCLUDE与LIB环境变量
    Linux下各种常见环境变量的配置
    Linux下用dump实现备份和还原 ux下用dump实现备份和还原
    Linux dd——备份命令
    linux cpio 备份命令
    Linux服务器的常用备份方法
    tar备份系统
    tar备份系统的方法
    LINUX系统备份
  • 原文地址:https://www.cnblogs.com/vpoet/p/4755381.html
Copyright © 2011-2022 走看看