1.单词的总长度除以单词数量:单词重量
#include<stdio.h>
#include<string.h>
int main(){
char str[200];
scanf("%[^\n]",str);
int len=strlen(str);
int num=0;
for(int i=0;i<len;i++){
if(str[i]==' ')num++;
}
int weight=len-num;
float v=((float)weight)/(num+1);
printf("%.2f",v);
}
2.小明的打字习惯
#include<stdio.h>
#include<string.h>
int main()
{
char str[200];
scanf("%[^\n]",str);
int len=strlen(str);
for(int i=0;i<len;i++){
if(str[i]=='a'||str[i]=='e'||str[i]=='i'||str[i]=='o'||str[i]=='u')
str[i]+='A'-'a';
else if(str[i]>='A'&&str[i]<='Z'&&str[i]!='A'&&str[i]!='E'&&str[i]!='I'&&str[i]!='O'&&str[i]!='U'){
str[i]-='A'-'a';
}
}
printf("%s",str);
return 0;
}
3.AABB的排列组合个数
#include<stdio.h>
#include<string.h>
#include<math.h>
void strsamechar(char*str,int len,int*s,int*n){
for(int i=0;i<len;i++){
s[i]++;
for(int j=i+1;j<len;j++)
if(str[i]==str[j]){
s[i]++;
n[j]=1;
}
}
}
int factorial(int n){
int res=1;
for(int i=1;i<=n;i++){
res*=i;
}
return res;
}
int main(){
char str[20];
scanf("%s",str);
int len=strlen(str);
int s[20]={0};
int n[20]={0};
strsamechar(str,len,s,n);
int v=factorial(len);
int num=1;
for(int i=0;i<len;i++){
if(s[i]>1&&n[i]!=1)num*=factorial(s[i]);
}
printf("%d",v/num);
return 0;
}
笔试:
第一题排序然后查找输出找标准作品
思考:
用库函数节省排序时间;这里只在机试的时候看了眼,原来是左闭右开的区间,指针注意一下;sort
然后读题是相同的也算第几个最大的,当时打的忘了,给加戏了;
然后是输出是前面“ %d”加括号好写;
第二题,第三题上来骗分,就过了,华为实习笔试给目标学校的条件还比较宽松,
过150就可以;
第二题的数组和路径找车站;第三题没咋看;朋友300多过了,第二题递归。等明天手搓一下试试再。
总的说来提升空间很大;
估计面试挂了要。