這破平臺不給測驗用例
https://paste.ubuntu.com/p/Vy7qSDWq5d/
我自己測驗一點問題沒有
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
int main(){
int right,amount;
scanf("%d %d",&right,&amount);
int loc[27]={0};
loc[26]=right;
char correct[right][23];
int cnt[26]={0};
char result[amount][4];
//memset(result,0,sizeof(char)*4*amount);
int fir=0;
getchar();
int now_cha=0;
for(int i=0;i<right;i++){
gets(correct[i]);
fir=correct[i][0]-97;
cnt[fir]++;
if(fir>now_cha){
now_cha=fir;
loc[fir]=i;
}
}
char temp[22];
for(int j=0;j<amount;j++){
int judge=1;
gets(temp);
fir=temp[0]-97;
if(cnt[fir]==0){
result[j][0]='T';
result[j][1]='A';
result[j][2]='T';
result[j][3]='\0';
continue;
}
int t=0;
int k=fir;
while(t==0){
t=loc[k++];
}
for(int i=loc[fir];i<loc[k-1];i++){
judge=strcmp(temp,correct[i]);
if(judge==0){
break;
}
}
if(judge==0){
result[j][0]='Q';
result[j][1]='A';
result[j][2]='Q';
result[j][3]='\0';
}
else
{
result[j][0]='T';
result[j][1]='A';
result[j][2]='T';
result[j][3]='\0';}
}
for(int i=0;i<amount;i++){
printf("%s\n",result[i]);
}
return 0;}
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
頂一下5555555uj5u.com熱心網友回復:
大佬太強了,帶帶我uj5u.com熱心網友回復:
去看看我寫的二分模板uj5u.com熱心網友回復:
int right,amount;
scanf("%d %d",&right,&amount);
int loc[27]={0};
loc[26]=right;
char correct[right][23];
int cnt[26]={0};
char result[amount][4];
別太自信了,result和correct陣列都是行數不確定,C語言不支持可變陣列的。因此陣列長度需要是確定的。
gets(correct[i]);
陣列的列數是23,如果輸入的越界了,你怎么處理?
測驗用例不能只考慮正確的,還要考慮例外的資料。
對于白盒測驗,可能沒問題。但是對于黑盒測驗如何解決和避免程式不崩潰呢?
uj5u.com熱心網友回復:
樓主你喜歡C99范兒,但是你確定你的“破平臺”不搞ANSI C?轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/232778.html
標籤:C語言
