PTA C语言(原创题)
#include <stdio.h>
int main()
{
int n,i,s=0;
scanf("%d",&n);
char c[n];
scanf("%s",&c);
int a=0,b=0,count=0;
for(i=0;i<n;i++){
switch(c[i]){
case 'C':a++;
break;
case 'J':b++;
break;
case '9':count++;
break;}
}
if(a!=0&&b!=0){
s=1;
printf("JC HAPPY!!!\n");
}
else
printf("JC YYDS!!!\n");
if(count>0&&s==1){
for(int j=1;j<count;j++){
printf("JC HAPPY!!!\n");
}
}
return 0;
}
测试运行是对的,但是PTA判定部分正确;
希望帮我找找错;
scanf("%d\n",&n) 这里的\n应该删掉
这么改下试试,供参考:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,i,flgc = 0,flgj = 0,flg9 = 0;//a=1,s=0;
scanf("%d",&n); //scanf("%d\n",&n);
char* c=(char*)malloc(sizeof(char)*(n+1));//c[n]
scanf("%s",c); //scanf("%s",&c);
for(i=0;i<n;i++){
//for(int j=1+i;j<n;j++){
// if((c[i]=='C'&&c[j]=='J')||(c[i]=='J'&&c[j]=='C')){
// a=-1;
// printf("JC HAPPY!!!\n");
// break;
// }
//}
//if(c[i]=='9' && a== -1){
// s++;
//}
//if(a==1)
//printf("JC YYDS!!!");
switch(c[i]){
case 'C':flgc++; break;
case 'J':flgj++; break;
case '9':flg9++; break;
default :break;
}
}
if ((!flgc || !flgj) && !flg9){
printf("JC YYDS!!!");
}
else{
if (!flg9)
printf("JC HAPPY!!!");
else{
for(i = 0;i < flg9;i++){
printf("JC HAPPY!!!");
if(i != flg9 - 1)
printf("\n");
}
}
}
return 0;
}