题解 | #数据分类处理#
数据分类处理
https://www.nowcoder.com/practice/9a763ed59c7243bd8ab706b2da52b7fd
#include <stdio.h>
#include <string.h>
#include <stdio.h>
int main() {
int strr[101]={0};
int stri[101]={0};
int rn,in;
scanf("%d",&in);
for(int i=0;i<in;i++)
{
scanf("%d",&stri[i]);
}
scanf("%d",&rn);
for(int i=0;i<rn;i++)
{
scanf("%d",&strr[i]);
}
for(int i=0;i<rn;i++)
{
for(int j=0;j<rn-i-1;j++)
{
if(strr[j]>strr[j+1])
{
int tmp;
tmp=strr[j];
strr[j]=strr[j+1];
strr[j+1]=tmp;
}
else if(strr[j]==strr[j+1]){
strr[j]=-1;
}
}
}
int rnew[100]={0};
int rnewn=0;
for(int i=0;i<rn;i++)
{
if(strr[i]!=EOF)
{
rnew[rnewn]=strr[i];
rnewn++;
}
}
int zzr[10000]={0};
int pos=1;
for(int i=0;i<rnewn;i++)
{
int count=0;
int flag=0;
for(int j=0;j<in;j++)
{
char ic[15]={0};
char rnc[15]={0};
sprintf(ic,"%d",stri[j]);
sprintf(rnc,"%d",rnew[i]);
if(strstr(ic,rnc)!=NULL)
{
flag=1;
count++;
zzr[pos+2]=j;
zzr[pos+3]=stri[j];
pos=pos+2;
}
}
if(flag==1)
{
zzr[pos-(count)*2]=rnew[i];
zzr[pos-(count)*2+1]=count;
pos=pos+2;
}
}
zzr[0]=pos-1;
for(int i=0;i<pos;i++){
printf("%d ",zzr[i]);
}
return 0;
}

查看5道真题和解析