腾讯笔试题:输入一串数字,长度不固定,数字间空格隔开,求每个数字出现的次数

求解决,看看我代码哪里出问题

#include <iostream>
using namespace std;

 //输入一串数字,长度不固定,数字间空格隔开,求每个数字出现的次数,每行用n(m)形式输出,n为不同的数,m为n出现的次数 

int main(int argc, char *argv[]) {  //问题 :只能输出第一个数的出现次数 
    typedef struct str{
       int a;
       int b; 
    };
    str str1[100];
    int n=0;
    int test[100];
    int k=1;
    int flag=1;   
    while(cin.get()!='\n'){     //问题 每次输入数据都会少掉第一个字符 输入时加空格则不会出现此问题,求解决方案 
                cin>>test[n];
                n++;    
    }

     for(int i=0;i<100;i++){
          str1[i].a=0;
          str1[i].b=0;
    }
    str1[0].a=test[0];
     str1[0].b=0;
    for(int i=0;i<n;i++){   // 2 2 3 4 5  2 3
        for(int j=0;j<k;j++)
          {
            if(test[i]==str1[j].a){
                str1[j].b++;
                flag=1; 
            }   
          }
        if(flag!=1){ 
                str1[k].a=test[i];
                str1[k].b=1;
                k++;
                flag=1;
        }
    }

    for(int i=0;i<k;i++){
         cout<<str1[i].a<<'(';
         cout<<str1[i].b<<')'<<endl;
    }

    return 0;
}

2个回答

int main(int argc, char *argv[]) { //问题 :只能输出第一个数的出现次数
typedef struct str{
int a;
int b;
};
str str1[100];
int n=0;
int test[100];
int k=1;
int flag=1;

while(cin.get()!='\n'){ //问题 每次输入数据都会少掉第一个字符 输入时加空格则不会出现此问题,求解决方案
cin>>test[n];
n++;

}

 for(int i=0;i<n;i++){
      str1[i].a=test[i];
      str1[i].b=0;
}
for(int i=0;i<n;i++){  // 2 2 3 4 5 2 3
    flag=1;
        for(int k=0;k<i;k++)
          if(str1[k].a==str1[i].a) 
          {flag=0;break;}
      if(flag!=0)
          for(int j=0;j<n;j++)
        {
          if(test[j]==str1[i].a)
              str1[i].b++; 
         }
}

for(int i=0;i<n;i++){
    if(str1[i].b!=0)
   {  cout<<str1[i].a<<'(';
     cout<<str1[i].b<<')'<<endl;
}
}
system("pause");
return 0;

}

int main(int argc, char *argv[]) { //问题 :只能输出第一个数的出现次数
typedef struct str{
char a;
int b;
};
str str1[100];
int n=0;
char test[100];
int k=1;
int flag=1;
char e;
do{
test[n]=cin.get();
n++;
e=getchar();
}
while(e!='\n');
for(int i=0;i<n;i++){
str1[i].a=test[i];
str1[i].b=0;
}
for(int i=0;i<n;i++){ // 2 2 3 4 5 2 3
flag=1;
for(int k=0;k<i;k++)
if(str1[k].a==str1[i].a)
{flag=0;break;}
if(flag!=0)
for(int j=0;j<n;j++)
{
if(test[j]==str1[i].a)
str1[i].b++;
}
}

for(int i=0;i<n;i++){
    if(str1[i].b!=0)
   {  cout<<str1[i].a<<'(';
     cout<<str1[i].b<<')'<<endl;
}
}
system("pause");
return 0;

}
刚刚没注意到第一个问题。这是最终版

qq_37016994
xiaomei-Liao 是第二个问题,每次输入数据都会少掉第一个字符 输入时加空格则不会出现此问题,求解决方案 。尴尬!!
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
输入一系列数字,计算每个数字出现的次数
程序如下: #include&amp;lt;iostream&amp;gt; using namespace std; int main() {     int currval=0, val=0; //currval is the number that we are counting and val is number we enter now     //reader the first number ...
C# 输入两个数字以空格隔开
想输入两个数字并以空格隔开,而且还要能把后面的数字提取出来 高手帮帮忙!!rn string input = Console.ReadLine();rn string[] inputnum = input.Split(' ');rnforeach (string i in inputnum) Console.WriteLine(i.ToString());rn这段代码只能输入2个数字,例如rn输入2 3rn我想把3拿出来另外操作 怎么办??感激不尽ing.........
输入两个数字 中间用空格隔开
static void Main(string[] args) { string num = Console.ReadLine(); string[] digits = num.Split(' ');//分割函数,以空格分割 int num01 = int.Parse(digits[0].Trim());
输入一串数字统计0到9每个数字的个数
题目: 输入一串字符统计这串字符中0有多少,1有多少,…,9有多少。 #include &amp;lt;stdio.h&amp;gt; int main() { char c; int shu[10]={0},i; while((c=getchar())!='\n') { if(c&amp;gt;='0'&amp;amp;&amp;amp;c&amp;lt;='9') shu[c-'0']++; } for(i=0;i&amp;l...
输入流的数字求和(空格隔开)
C语言:include include using namespace std; int main( ) { int sum = 0; cout << “请输入一串整数和任意数目的空格:”; int i; while(cin >> i) { sum += i; while( cin.p
输入不知道长度的一串数字或字符串
一、字符串 问题:字符串有没有空格?是否只有一个字符串? 1.没有空格的字符串、多个字符串可以用scanf scanf("%s",str)-------获取单个字符串,字符串之间不能有空格。因为系统吧空格字符作为输入字符串之间的分隔符。 scanf("%s%s%s",str1,str2,str3)--------获取三个字符串,输入时字符串之间以空格分隔。这也就是scanf不能直接
日常解题输入一串不知长度的数字的
too many arguments to function 'getchar’和怎样输入一串不知长度的数字和 assignment makes pointer from integer without a cast too many arguments to function ‘getchar’ 今天碰到一道不严谨的题目,要求输入一串不知长度的数字 题目如下: 2.将n个数从小到大排列,要求在输...
java基础:输入一串数字,用空格隔开,输出存在两次的数字
之前困扰在如何能把一串数字的个数得到,还在想如何能将每一个数字统一放入一个数组中。(拖延症晚期) 这次,果真就碰到了题目,悔,来记录一下吧。   看到可以将输入的用String来接收,之后用空格隔开,放入一数组number中。 ps:不要小瞧那些看起来不起眼的方法,还是记住一些吧。 Scanner in = new Scanner(System.in); String stri...
查找数字字符串中每个数字出现的次数
最近几天在review之前同学写的图像处理代码,发现里面数字字符串中每个数字出现次数的计算过程写的有些许冗余之处。因此,我就按照自己理解的重新写了一份。问题计算数字字符串中每个数字字符出现的次数。例如: 输入: 123344668 输出:1 --> 1 2 --> 1 3 --> 2 4 --> 2 6 --> 2 8 --> 1实现代码本文我使用Python语言实现计算字符出现次数的过程,其他
数组中数字出现次数超长度一半的数字
题目 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 思路 先mark[ todo] 先写方法1,比较暴力,比较愚蠢,时间复杂度会比较大 利用map,把原数组中每个不同元素作为key,出现的次数作为value。 返回value 大...
计算数组中每个数字出现的次数
var arr = [12,31,42,54,65,12,31,12,42,22]; //统计个数 var arr2 = {}; arr.forEach(function(item){ if(arr2[item]){ arr2[item] += 1; }else{ arr2[item] = 1; } }) console.log(arr2);
查询字符串中字母,数字,空格出现的次数
public static void main(String[] args) { BufferedReader bfr = new BufferedReader(new FileReader(&quot;d:\1.txt&quot;)); StringBuffer sbf = new StringBuffer(); String line; int character = 0,digital =...
查询字符串中字母,数字,空格出现的次数
Java代码    public static void main(String[] args)   {       BufferedReader bfr = new BufferedReader(new FileReader(&quot;d:\1.txt&quot;));       StringBuffer sbf = new StringBuffer();       String...
计算数字出现的次数
读取输入的从0-100的数字,输入0结束,统计每个字数出现的次数,出现1次的输出 1 time,出现2次的输出 2 timers 代码如下: import java.util.*; public class Test001 { public static void main(String args) { Scanner sc=new Scanner(System.in); int nu
计算数字的出现次数
package seven; import java.util.*; public class seven_3 { public static void main(String[] args) { Scanner input = new Scanner(System.in); while(input.hasNextLine())//判断是否有输入; { ...
用程序来写出输出的数字出现的次数
#include <stdio.h> #include <stdlib.h> #define N 10 int main() { int x; int a[N]={0}; int i; scanf("%d",&x); while(x!=-1) { if(x>=0 && x<=9){ a[x]++;
统计数组中每个数字出现的次数
有一个二维数组,比如说是下面的这个rn[code=C/C++]rn1 2 3 4rn2 3 4 5rn1 3 5 7rn[/code]rn想要统计其中每个数出现的次数,如上矩阵的话就是1出现了2次,2出现了2次,3出现了3次...rn我的想法是定义一个临时变量依次取整个矩阵中的值,遍历整个矩阵,找到与临时变量相等的值,同时还可以定义一个标志数组,已经统计过数字的位置上标志数组值为0,未统计的为1,这样在遍历数组的过程中可以有个判断,减少一些计算量。不知道各位有没有什么其他简单高效的算法?
数字出现的次数
import java.util.Scanner; public class Main { public static int digitCounts(int n, int k) { int count=0; if(n%10&gt;=k) count++; for(int i=10;i&lt;=n;i*=10){ count+=n/i*i/10; if((n%(i*10))/i...
html 只能输入固定长度数字
&amp;amp;amp;lt;input id=&amp;amp;quot;testPaperBuyBoxes&amp;amp;quot; name=&amp;amp;quot;testPaperBuyBoxes&amp;amp;quot; maxlength=&amp;amp;quot;3&amp;amp;quot; type=&amp;amp;quot;text&amp;amp;quot; onk
数字统计之统计页码数字出现的次数
给定一个十进制整数N,求出从1到N的所有整数中出现"1"的个数。 例如:N=2,1,2出现了1个"1"。 N=12,1,2,3,4,5,6,7,8,9,10,11,12。出现了5个"1"。 最直接的方法就是从1开始遍历到N,将其中每一个数中含有"1"的个数加起来,就得到了问题的解。 long CountOne3(long n) { long i = 0,j = 1...
edit1中输入的一串数字
请问组件edit1中输入的一串数字,例如(1,2,3,4,5,6,7,8,9,10,11,23,-1.)用逗号分开结束用点,如何将其输入到预先定义的数组中x:arrary[1..13] of double. rnx[i]:=strtoint(edit1.text)? rnrn
输入一串数字 找到最小值
朋友李老板 给我发了一篇全英文的java系题  看得眼睛都花了  在做的过程中第10题比较有趣 我写出来分享下 Write a complete Java program that prompts the user for a series of numbers to determine the smallest value entered.  Before the program termin...
求输入一串字符串中的数字和
# str1 = input() # s = 0 # for i in str1: # if i.isdigit(): # s += int(i) # print(s) str2 = input() str3 = &quot;&quot; for i in str2: if i.isdigit(): str3 += i else: str3 ...
腾讯笔试题——有趣的数字
小Q今天在上厕所时想到了这个问题:有n个数,两两组成二元组,差最小的有多少对呢?差最大呢? 输入描述: 输入包含多组测试数据。 对于每组测试数据: N - 本组测试数据有n个数 a1,a2...an - 需要计算的数据 保证: 1<=N<=100000,0<=ai<=INT_MAX. 输出描述: 对于每组数据,输出两个数,第一个数表示差最小的对数,第二个数表示差最大的对数。
腾讯笔试题 2 有趣的数字
小Q今天在上厕所时想到了这个问题:有n个数,两两组成二元组,差最小的有多少对呢?差最大呢? 输入描述: 输入包含多组测试数据。 对于每组测试数据: N - 本组测试数据有n个数 a1,a2...an - 需要计算的数据 保证: 1 输出描述: 对于每组数据,输出两个数,第一个数表示差最小的对数,第二个数表示差最大的对数。 输入例子1:
Java 键盘输入数字(空格隔开) 将数字存入数组。
Scanner sc = new Scanner(System.in); String inputString = sc.nextLine(); String stringArray[] = inputString.split(&quot; &quot;); int num[] = new int[stringArray.length];
生成固定长度数字的字符串
/** * 生成固定长度序列字符串 * @param length 字符串长度 * @param preNo 上一个数 * @return */ public static String genSequenceNumber(int length,int preNo){ return String.format(...
【C语言】计算输入整数中每个数字出现的次数
/* * 计算输入整数中每个数字出现的次数 * 输入一个整数,如1353156。输出这个整数中有2个1、2个3、2个5、1个6。 **/ #include <stdio.h> int main() { int num = 0, i = 0; printf("请输入一个整数:"); scanf("%d", &num); int array[10] = {};
求数字的长度.
rnrn竟然弹出 undefined...rnrn求高手指教下, 怎么获取 a 的长度, 谢谢。 [img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/0.gif][/img]
字符串求数字长度
#include <stdio.h> #include <iostream> #include <cstring> #include <stdlib.h> #include <math.h> using namespace std; void outhanshu(char *str,int end,int max){ for(int j=end-max+1;j<=end;j++){
空格和数字
要用正则匹配空格和数字rn在网上看到有用/^((\d+(\.\d*)?)|((\d*\.)?\d+))$/来匹配数字的 但是我改了好几次都没有成功·rn
求一正则: 数字,数字,数字,数字
例:rn231,23,454,67,78789,3214rnrn
提取输入次数最多数字!!
如何实现我不管输入任何数用程序可以把里面的输入次数最多的数提取出来!rn也就是我不停的往num中赋值1、2、3、3、4、5、6、8、2、3。。。则程序会把输入次数最多的3提取出来!
提取输入次数最多数字!
如何实现我不管输入任何数用程序可以把里面的输入次数最多的数提取出来!rn也就是我不停的往num中赋值1、2、3、3、4、5、6、8、2、3。。。则程序会把输入次数最多的3提取出来!
【新人求助!!!!】求一组随机数中每个数字出现的次数
就是要求先产生一组随机数,然后计算每个数字出现的次数。rnrn现在我编出了一个很简单的程序,但是不能运行成功。rn以下是程序rn rn public class text rn public static void main(String[] args) rn System.out.println("The random array is:"); rn int[] n=new int [20];rn rn for(int i=0;i<20;i++)rn int j = (int) (Math.random()*10);rn n[i]=j;rn System.out.print(n[i]+" ");rn rn int[] cc = new int[10]; rn rn for (int k = 0;k < 5; k++) rn if (n[k]=='0') cc[0]++;rn else if (n[k]=='1') cc[1]++; rn else if (n[k]=='2') cc[2]++;rn else if (n[k]=='3') cc[3]++;rn else if (n[k]=='4') cc[4]++;rn else if (n[k]=='5') cc[5]++; rn else if (n[k]=='6') cc[6]++; rn else if (n[k]=='7') cc[7]++; rn else if (n[k]=='8') cc[8]++; rn else if (n[k]=='9') cc[9]++; rn rn rn for (int m = 0;m < 10; m++) rn System.out.println(cc[m]);rn rn rn rnrnrn我想的比较简单。rn就是先产生一个数组n存放20个随机数rn然后再有一个有10个元素的数组ccrn通过查n中每一个数字rn如果是0,存入cc[0]中,以此类推。rn可是我这个程序运行的时候,从cc[0]到cc[9]全部输出为0。rn我想知道我这个想法哪里出错了,程序又在哪里出错了。。rnrn我之前查到过用Map做的。。但我们要求不能用那个还。。rn希望大家可以看看程序然后帮忙说说哪里错了。。rnrn另外就是有没有办法把那一串if简写下。。因为如果是100以内的随机数的话。。按我这个方法,需要有100个if。。太繁琐了。。rn rn还请求大家帮忙看看。。谢谢!!!
JS实现将一串数字每四位数字用空格隔开(显示银行卡号等)
var num1 = '82452365122547854' var num2 = num1.replace(/(.{4})/g, &quot;$1 &quot;) console.log('正常显示:',num1) console.log('每四位数用空格隔开:',num2) 控制台输出为:
求n个自然数中每个数字出现的次数
描述 某次科研调查时得到了Ñ个自然数,每个数均不超过15亿(1.5 * 109)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。   思路 1.用数组装下所有数,之后利用排序()函数对数组中的所有元素进行排序 2.将第一个元素定为哨兵,定义conut变量用以统计元素出现次数,其初值为1 3.遍历第二个到的第Ñ个元素,若哨...
数字出现的数字
include include define N 10int main() { int x; int a[N]={0}; int i; scanf(“%d”,&x); while(x!=-1) { if(x>=0 && x<=9){ a[x]++; } sca
将一串数字中间增加空格
例如:rn247200rn247201rn247206rnrnrn显示为 2 4 7 2 00rnrn求教各位,谢谢!
输入多个数字时,数字间用空格隔开和数字间间用回车隔开有什么区别
比如说我用scanf("%d%d%d%d",&a,&b,&c,&d)输入四个数字,当我键入数字5后,我按回车,编译器怎么不结束输入,不是说回车是结束输入吗
相关热词 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图 c# 验证码图片生成类 c# 再次尝试 连接失败 c#开发编写规范 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数