编辑代码

#include <stdio.h>
#define COUNT 65536*8
int number[COUNT];

int main()
{
  int i;
  char c;
  
  for(i=0;;i++)
  {
    scanf("%d",&number[i]);
    if((c=getchar())=='\n')
      break;
  }

  struct info_t
  {
  int value;//数值
  int n;//次数
  int under[i+1];//下标
  };

  int j=0,k=0,p=0,f=0;
  struct info_t info[i+1];
  
ret_0:
  for(;j<=i;j++)
  {
    for(k=0;k<j;k++)
    {
      if(number[k]==number[j])
      {j++; goto ret_0;}
    }
    info[p].value=number[j];
    info[p].n=1;

    for(k=j+1;k<=i;k++)
    {
      if(number[k]==number[j])
      {
        info[p].n++;
      }
    }

    f=0;
    for(k=0;k<=i;k++)
    {
      if(number[k]==info[p].value)
      {
         info[p].under[f]=k; 
         f++;
      }  
      if(f==info[p].n)
      break;
    }

    p++; //p表示了一共有几个数
  }

  int max;
  for(k=0;k<p;k++)
  {
    max=0;
    for(i=0;i<p;i++)
    if(info[i].n>max)
    {
      max=info[i].n;
      j=i;
    }

    printf("(%d,%d)(%d" ,info[j].value,info[j].n,info[j].under[0]);
    for(i=1;i<info[j].n;i++)
    printf(",%d" , info[j].under[i]);
    printf("%s",k==p-1?")":") ");
   
    info[j].n=0;
  }
    
  return 0;
}