|
发表于 2022-11-14 23:20:23
|
显示全部楼层
本帖最后由 jhq999 于 2022-11-14 23:46 编辑
- #include<stdio.h>
- struct havechar
- {
- char e;
- int isxy,x,y;
- };
- int main()
- {
- char ch[20]=
- {
- 'a', 'a', 'a', 'a', 'a',
- 'b ', 'b', 'b', 'c', 'c',
- 'b', 'd','d', 'f', 'e',
- 'b ', 'g ','g', 'f', 'e'
- };
- char (*p)[5]=(char(*)[5])ch;
- struct havechar hch[20]= {0};
- int n=0;
- for(int i=0; i<4; i+=1)
- {
- for(int j=0; j<5; j+=1)
- {
- int k=0;
- for(; k<n; k+=1)
- {
- if(p[i][j]==hch[k].e)
- {
- if((1==hch[k].isxy&&i+1!=hch[k].x)||(2==hch[k].isxy&&j+1!=hch[k].y))//前俩相同元素确定是同行isxy=1,同列isxy=2,
- {
- hch[k].isxy=-1;//不在同一行或同一列isxy=-1
- }
- else if(0==hch[k].isxy)//isxy=0时是已经有这个元素了,第二次遇到这个元素
- {
- if(i+1==hch[k].x)hch[k].isxy=1;//如果同一行
- else if(j+1==hch[k].y)hch[k].isxy=2;//同一列
- else hch[k].isxy=-1;//不同行也不同列
- }
- break;
- }
- }
- if(k==n)hch[n].e=p[i][j],hch[n].isxy=0,hch[n].x=i+1,hch[n].y=j+1,n+=1;//没有这个元素,添加
- }
- }
- for(int i=0;i<n;i+=1)if(hch[i].isxy>=0)printf("%c ",hch[i].e);
- return 0;
- }
复制代码- a c d f e g
- Process returned 0 (0x0) execution time : 0.290 s
- Press any key to continue.
复制代码 |
|