我是个汉子 发表于 2019-2-25 20:50:21

大佬帮忙看一下 C的相同字符删除与计数

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<ctype.h>
#include<string.h>
#define N 50
int main()
{
    int b={0,0,1,2,2,3,4,4,4,4,5,5,5,5,6,7,8,8,9,9};
    int times={0};
    int i,j,k=0,count,n=N;
    for(i=0; i<n; i++)
    {
      count=1;
      for(j=i; j<n; j++)
      {
            if(b==b)
            count++;
            else
            {
                times=count;
                i=j;
                break;
            }
      }   
      if(b!=b && i==n-1)
            times=count;
    }   
    j=1;
    for(i=1; i<n; i++)
    {
      if(b!=b)
      b=b;
    }
    for(i=0; i<k; i++)
    printf("%d ³öÏÖ %d´Î\n",b,times);
}

jackz007 发表于 2019-2-25 20:50:22

本帖最后由 jackz007 于 2019-2-26 11:00 编辑

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define N 50

int main()
{
      int b={0 , 0 , 1 , 2 , 2 , 3 , 4 , 4 , 4 , 4 , 5 , 5 , 5 , 5 , 6 , 7 , 8 , 8 , 9 , 9} ;
      int times = {0}                                                                     ;
      int i , k = 1                                                                            ;
      times = 1                                                                         ;
      for(i = 1 ; i < N ; i ++) {
                if (b == b) times ++                                          ;// 目标元素与当前备案比较,如果相同则计数值增 1
                else {                                                                                    
                        if (b < b) break                                             ;// 如果目标元素比当前备案值小则结束循环
                        else {
                              k ++                                                             ;// 目标元素与备案元素不同,备案索引 k 增 1
                              b = b                                                ;// 为新元素建立备案
                              times = 1                                                 ;// 把新元素出现的次数初始化为 1
                        }
                }
      }
      for(i = 0 ; i < k ; i ++) printf("%d 出现 %d次\n" , b , times)                     ;
}


    运行情况:
G:\\00.00.Exercise\C\Count>x
0 出现 2次
1 出现 1次
2 出现 2次
3 出现 1次
4 出现 4次
5 出现 4次
6 出现 1次
7 出现 1次
8 出现 2次
9 出现 2次

G:\\00.00.Exercise\C\Count>

910201513 发表于 2019-2-25 22:56:14

这个输出没有问题啊

910201513 发表于 2019-2-25 22:58:31

int b={0,0,1,2,2,3,4,4,4,4,5,5,5,5,6,7,8,8,9,9};
你的数组前20个为定义的数字,其余30个确实为0啊,没毛病啊
{:10_257:}{:10_257:}{:10_257:}

我是个汉子 发表于 2019-2-26 12:18:50

910201513 发表于 2019-2-25 22:58
int b={0,0,1,2,2,3,4,4,4,4,5,5,5,5,6,7,8,8,9,9};
你的数组前20个为定义的数字,其余30个确实为0啊, ...

没注意{:10_284:}

我是个汉子 发表于 2019-2-26 12:22:10

jackz007 发表于 2019-2-25 20:50
运行情况:
G:\\00.00.Exercise\C\Count>x
0 出现 2次


如果数字不是有序的话就不可以这么做了

jackz007 发表于 2019-2-26 12:31:27

我是个汉子 发表于 2019-2-26 12:22
如果数字不是有序的话就不可以这么做了

      确实如此,代码设计与楼主的实际问题相呼应。

我是个汉子 发表于 2019-2-26 12:35:29

jackz007 发表于 2019-2-26 12:31
确实如此,代码设计与楼主的实际问题相呼应。

代码够用了{:10_275:}
页: [1]
查看完整版本: 大佬帮忙看一下 C的相同字符删除与计数