华为上机笔试 2016-9-4

来源:互联网 发布:淘宝能开刻章店吗 编辑:程序博客网 时间:2024/06/02 06:57

答案正确,先纳闷了好几个小时,不知道错误出现在哪最后发现时由于数组定义短了,将N换成1000就正确通过了,说明测试用例还是挺长的


您的代码已保存

段错误:您的程序发生段错误,可能是数组越界,堆栈溢出(比如,递归调用层数太多)等情况引起

题目描述

编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127)。不在范围内的不作统计。


输入描述:

输入N个字符,字符在ACSII码范围内。



输出描述:

输出范围在(0~127)字符的个数。


输入例子:
abc

输出例子:
3

#include "stdafx.h"#include <iostream>#include <string>using namespace std;int main(){//string s;char s[100];//while(cin>>s)while(gets(s)){int n=0;for(int i=0;s[i]!='\0';i++){int m=0;if((int)(s[i])>=0&&(int)(s[i])<=127){for(int q=0;q<i;q++){if(s[i]==s[q])m++;}if(m==0)n++;}}cout<<n<<endl;}return 0;}
您的代码已保存

段错误:您的程序发生段错误,可能是数组越界,堆栈溢出(比如,递归调用层数太多)等情况引起

题目描述

数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。


输入描述:

先输入键值对的个数然后输入成对的index和value值,以空格隔开



输出描述:

输出合并后的键值对(多行)


输入例子:
40 10 21 23 4

输出例子:
0 31 23 4
#include "stdafx.h"#include <iostream>using namespace std;int main(){int n;while(cin>>n){int a,b;int c[100][2];//for(int i=0;i<n;i++) int i=0;while(n--){cin>>a>>b;int m=0;for(int q=0;q<i;q++){if(a==c[q][0]){c[q][1]+=b;m++;}}if(m==0){c[i][0]=a;c[i][1]=b;i++;}}int k=0;for(;k<i;k++){cout<<c[k][0]<<' '<<c[k][1]<<endl;}}return 0;}

题目描述

输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。


输入描述:

输入一个int型整数



输出描述:

按照从右向左的阅读顺序,返回一个不含重复数字的新的整数


输入例子:
9876673

输出例子:
37689
#include "stdafx.h"#include <iostream>using namespace std;int main(){int n;while(cin>>n){int a,b;int i=0;int c[100];for(a=n/10,b=n%10;(a!=0||b!=0);b=a%10,a=a/10){int m=0;for(int q=0;q<i;q++){if(b==c[q])                  m++;}if(m==0){c[i]=b;i++;}}for(int q=0;q<i;q++){cout<<c[q];}cout<<endl;}return 0;}



0 0
原创粉丝点击