bitter_foxさん
この方法で解決しました。ありがとうございます。
switch文でbreakが無いのは、仕様ですよね??
仕様です。
コード:
#include <stdio.h>
int main(void) {
int sonzai[52];
int n;
int i;
char kindc[4]={'S','H','C','D'};
char kind;
int num;
for(i=0;i<52;i++)sonzai[i]=0;
scanf("%d",&n);
while (getchar()!='\n');
for(i=0;i<n;i++) {
scanf("%c %d",&kind,&num);
while (getchar()!='\n');
switch(kind) {
case 'D':num+=13;
case 'C':num+=13;
case 'H':num+=13;
/*case 'S':num+=13;*/
}
sonzai[num-1]=1;
}
for(i=0;i<52;i++) {
if(sonzai[i]==0)
printf("%c %d\n",kindc[i/13],i%13+1);
}
return 0;
}
七篠さん
二次元配列のコードでもAcceptされました。ありがとうございます。
コード:
#include <stdio.h>
int main(void) {
int sonzai[4][13];
int n;
int i;
int c;
char kindc[4]={'S','H','C','D'};
char kind;
int num;
for(c=0;c<4;c++) {
for(i=0;i<13;i++)sonzai[c][i]=0;
}
scanf("%d",&n);
while (getchar()!='\n');
for(i=0;i<n;i++) {
scanf("%c %d",&kind,&num);
while (getchar()!='\n');
switch(kind) {
case 'S':sonzai[0][num-1]=1;break;
case 'H':sonzai[1][num-1]=1;break;
case 'C':sonzai[2][num-1]=1;break;
case 'D':sonzai[3][num-1]=1;break;
}
}
for(c=0;c<4;c++) {
for(i=0;i<13;i++) {
if(sonzai[c][i]==0)
printf("%c %d\n",kindc[c],i+1);
}
}
return 0;
}