ㅠㅠ 그냥 노가다 방식으로 다 배열에다 저장해놓고 비교하는 방식으로 풀었습니다. 알파벳을 정렬해서 순서가 뒤바껴도 비교를 통해 정답을 가려 냈구요 합이 0과 10 사이의 숫자가 아닌 숫자면 모두 No로 나오게 했는데 어떤부분에서 오답이 뜨는지 너무나 궁금합니다 ㅠㅠ 생각해낼 수 있는 예제는 다 생각해서 집어넣어봤는데 혹시 다른 어떤 부분이 잘못되었는지 알 수 있을까요??
#define _CRT_SECURE_NO_WARNINGS# include <iostream># include <cstring>intcompare(constvoid*a,constvoid*b){return(*(char*)b-*(char*)a);}charzero[11]={'z','e','r','o'};charone[11]={'o','n','e'};chartwo[11]={'t','w','o'};charthree[11]={'t','h','r','e','e'};charfour[11]={'f','o','u','r'};charfive[11]={'f','i','v','e'};charsix[11]={'s','i','x'};charseven[11]={'s','e','v','e','n'};chareight[11]={'e','i','g','h','t'};charnine[11]={'n','i','n','e'};charten[11]={'t','e','n'};chara[11];intA;charb[11];intB;charoperation[11];charu[11];charres[11];intmain(){qsort(zero,11,sizeof(char),compare);qsort(one,11,sizeof(char),compare);qsort(two,11,sizeof(char),compare);qsort(three,11,sizeof(char),compare);qsort(four,11,sizeof(char),compare);qsort(five,11,sizeof(char),compare);qsort(six,11,sizeof(char),compare);qsort(seven,11,sizeof(char),compare);qsort(eight,11,sizeof(char),compare);qsort(nine,11,sizeof(char),compare);qsort(ten,11,sizeof(char),compare);intt,s,i;scanf("%d",&t);while(t--){s=0;scanf("%s",a);scanf("%s",operation);scanf("%s",b);scanf("%s",u);scanf("%s",res);qsort(res,11,sizeof(char),compare);A=100;B=100;s=100;if(a[0]=='z'&&a[1]=='e'&&a[2]=='r'&&a[3]=='0'&&a[4]==0&&a[5]==0&&a[6]==0&&a[7]==0&&a[8]==0&&a[9]==0)A=0;if(b[0]=='z'&&b[1]=='e'&&b[2]=='r'&&b[3]=='o'&&b[4]==0&&b[5]==0&&b[6]==0&&b[7]==0&&b[8]==0&&b[9]==0)B=0;if(a[0]=='o'&&a[1]=='n'&&a[2]=='e'&&a[3]==0&&a[4]==0&&a[5]==0&&a[6]==0&&a[7]==0&&a[8]==0&&a[9]==0)A=1;if(b[0]=='o'&&b[1]=='n'&&b[2]=='e'&&b[3]==0&&b[4]==0&&b[5]==0&&b[6]==0&&b[7]==0&&b[8]==0&&b[9]==0)B=1;if(a[0]=='t'&&a[1]=='w'&&a[2]=='o'&&a[3]==0&&a[4]==0&&a[5]==0&&a[6]==0&&a[7]==0&&a[8]==0&&a[9]==0)A=2;if(b[0]=='t'&&b[1]=='w'&&b[2]=='o'&&b[3]==0&&b[4]==0&&b[5]==0&&b[6]==0&&b[7]==0&&b[8]==0&&b[9]==0)B=2;if(a[0]=='t'&&a[1]=='h'&&a[2]=='r'&&a[3]=='e'&&a[4]=='e'&&a[5]==0&&a[6]==0&&a[7]==0&&a[8]==0&&a[9]==0)A=3;if(b[0]=='t'&&b[1]=='h'&&b[2]=='r'&&b[3]=='e'&&b[4]=='e'&&b[5]==0&&b[6]==0&&b[7]==0&&b[8]==0&&b[9]==0)B=3;if(a[0]=='f'&&a[1]=='o'&&a[2]=='u'&&a[3]=='r'&&a[4]==0&&a[5]==0&&a[6]==0&&a[7]==0&&a[8]==0&&a[9]==0)A=4;if(b[0]=='f'&&b[1]=='o'&&b[2]=='u'&&b[3]=='r'&&b[4]==0&&b[5]==0&&b[6]==0&&b[7]==0&&b[8]==0&&b[9]==0)B=4;if(a[0]=='f'&&a[1]=='i'&&a[2]=='v'&&a[3]=='e'&&a[4]==0&&a[5]==0&&a[6]==0&&a[7]==0&&a[8]==0&&a[9]==0)A=5;if(b[0]=='f'&&b[1]=='i'&&b[2]=='v'&&b[3]=='e'&&b[4]==0&&b[5]==0&&b[6]==0&&b[7]==0&&b[8]==0&&b[9]==0)B=5;if(a[0]=='s'&&a[1]=='i'&&a[2]=='x'&&a[3]==0&&a[4]==0&&a[5]==0&&a[6]==0&&a[7]==0&&a[8]==0&&a[9]==0)A=6;if(b[0]=='s'&&b[1]=='i'&&b[2]=='x'&&b[3]==0&&b[4]==0&&b[5]==0&&b[6]==0&&b[7]==0&&b[8]==0&&b[9]==0)B=6;if(a[0]=='s'&&a[1]=='e'&&a[2]=='v'&&a[3]=='e'&&a[4]=='n'&&a[5]==0&&a[6]==0&&a[7]==0&&a[8]==0&&a[9]==0)A=7;if(b[0]=='s'&&b[1]=='e'&&b[2]=='v'&&b[3]=='e'&&b[4]=='n'&&b[5]==0&&b[6]==0&&b[7]==0&&b[8]==0&&b[9]==0)B=7;if(a[0]=='e'&&a[1]=='i'&&a[2]=='g'&&a[3]=='h'&&a[4]=='t'&&a[5]==0&&a[6]==0&&a[7]==0&&a[8]==0&&a[9]==0)A=8;if(b[0]=='e'&&b[1]=='i'&&b[2]=='g'&&b[3]=='h'&&b[4]=='t'&&b[5]==0&&b[6]==0&&b[7]==0&&b[8]==0&&b[9]==0)B=8;if(a[0]=='n'&&a[1]=='i'&&a[2]=='n'&&a[3]=='e'&&a[4]==0&&a[5]==0&&a[6]==0&&a[7]==0&&a[8]==0&&a[9]==0)A=9;if(b[0]=='n'&&b[1]=='i'&&b[2]=='n'&&b[3]=='e'&&b[4]==0&&b[5]==0&&b[6]==0&&b[7]==0&&b[8]==0&&b[9]==0)B=9;if(a[0]=='t'&&a[1]=='e'&&a[2]=='n'&&a[3]==0&&a[4]==0&&a[5]==0&&a[6]==0&&a[7]==0&&a[8]==0&&a[9]==0)A=10;if(b[0]=='t'&&b[1]=='e'&&b[2]=='n'&&b[3]==0&&b[4]==0&&b[5]==0&&b[6]==0&&b[7]==0&&b[8]==0&&b[9]==0)B=10;if(operation[0]=='+'&&operation[1]==0)s=A+B;elseif(operation[0]=='*'&&operation[1]==0)s=A*B;elseif(operation[0]=='-'&&operation[1]==0)s=A-B;else{printf("No\n");}if(s>10||s<0)printf("No\n");elseif(s==0){for(i=0;i<10;i++){if(zero[i]!=res[i]){printf("No\n");break;}}if(i==10)printf("Yes\n");}elseif(s==1){for(i=0;i<10;i++){if(one[i]!=res[i]){printf("No\n");break;}}if(i==10)printf("Yes\n");}elseif(s==2){for(i=0;i<10;i++){if(two[i]!=res[i]){printf("No\n");break;}}if(i==10)printf("Yes\n");}elseif(s==3){for(i=0;i<10;i++){if(three[i]!=res[i]){printf("No\n");break;}}if(i==10)printf("Yes\n");}elseif(s==4){for(i=0;i<10;i++){if(four[i]!=res[i]){printf("No\n");break;}}if(i==10)printf("Yes\n");}elseif(s==5){for(i=0;i<10;i++){if(five[i]!=res[i]){printf("No\n");break;}}if(i==10)printf("Yes\n");}elseif(s==6){for(i=0;i<10;i++){if(six[i]!=res[i]){printf("No\n");break;}}if(i==10)printf("Yes\n");}elseif(s==7){for(i=0;i<10;i++){if(seven[i]!=res[i]){printf("No\n");break;}}if(i==10)printf("Yes\n");}elseif(s==8){for(i=0;i<10;i++){if(eight[i]!=res[i]){printf("No\n");break;}}if(i==10)printf("Yes\n");}elseif(s==9){for(i=0;i<10;i++){if(nine[i]!=res[i]){printf("No\n");break;}}if(i==10)printf("Yes\n");}elseif(s==10){for(i=0;i<10;i++){if(ten[i]!=res[i]){printf("No\n");break;}}if(i==10)printf("Yes\n");}memset(a,0,sizeof(a));memset(b,0,sizeof(b));memset(u,0,sizeof(u));memset(res,0,sizeof(res));memset(operation,0,sizeof(operation));}return0;}
mju6229
ㅠㅠ 그냥 노가다 방식으로 다 배열에다 저장해놓고 비교하는 방식으로 풀었습니다. 알파벳을 정렬해서 순서가 뒤바껴도 비교를 통해 정답을 가려 냈구요 합이 0과 10 사이의 숫자가 아닌 숫자면 모두 No로 나오게 했는데 어떤부분에서 오답이 뜨는지 너무나 궁금합니다 ㅠㅠ 생각해낼 수 있는 예제는 다 생각해서 집어넣어봤는데 혹시 다른 어떤 부분이 잘못되었는지 알 수 있을까요??
8년 전