百度水果開會時段解答(經過測試)

雖然程序經過測試,但是其中一些語句用的不是很規範,最後,我只將結果輸出到屏幕上,沒有寫入文件。
 程序太長,以後會慢慢改進。
#include <stdio.h>
#include <string.h>

main(){
int num;
FILE *stream=fopen("in1.txt","r");
char *str=(char *)malloc(100);
size_t size=3;
getline(&str,&size,stream);
sscanf(str,"%d",&num);
int i;
int time1[num],time2[num];
int n;
int store[num];
char *fru[num][10];
size_t ret;

char *temp=(char *)malloc(50);

for(i=0;i<num;i++)
{
//    getline(&str,&size,stream);

// *str='/0';
 strcpy(str,"/0");

 int biaozhi=1;   
while((ret=getline(&temp,&size,stream)==size)&&biaozhi&&ret!=-1)
{
if(*(temp+size-1)!='/n')
       strcat(str,temp);
else {strcat(str,temp); biaozhi=0;}      
}
if(ret!=-1)
strcat(str,temp);
//printf("ret is %d/n",ret);
//printf("str is%d",*(str+ret-1));
   
sscanf(str,"%d%d%n",&time1[i],&time2[i],&n);
str+=n;
printf("time is%d%d/n",time1[i],time2[i]);
size_t size=100;
int j=0;
fru[i][j]=(char *)malloc(15);

   
while(sscanf(str,"%s%n",fru[i][j],&n)==1)
{
printf("n is%d /n",n);   
str+=n;
j++;
fru[i][j]=(char *)malloc(15);
}
store[i]=j;
}

printf("fru is %d/n",strlen(fru[2][0]));   
for(i=0;i<num;i++)
{
    int j;
printf("%d %d ",time1[i],time2[i]);
for(j=0;j<store[i];j++)
printf("%s ",fru[i][j]);   
printf("/n");
}
for(i=0;i<num;i++)
printf("store is %d /n",store[i]);
//char *cc=fru[2][0];
//printf("cc is %d %d/n",*(cc+4),*(cc+5));
//free(str);
//str=NULL;
printf("gogogo/n");
free(temp);
temp=NULL;
printf("gogogo/n");
/*unsigned short int *p1=(unsigned short int *)fru[0][0];
printf("fru is %d %d/n",*(p1),*(p1+1));
p1=(unsigned short int *)fru[0][1];
printf("fru is %d %d/n",*(p1),*(p1+1));
p1=(unsigned short int *)fru[1][0];
printf("fru is %d %d/n",*(p1),*(p1+1));*/
/*int h;
for(i=0;i<num;i++)
for(h=0;h<store[i];h++)
{
unsigned short int *p1=(unsigned short int *)fru[i][h];
printf("fru is %d %d %d %d %d %d/n",*(p1),*(p1+1),*(p1+2),*(p1+3),*(p1+4),*(p1+5));


}*/
int biaoji[num][10];
int j;
int ii,jj;
int mm=0;
for(i=0;i<num;i++)
    for(j=0;j<10;j++)
{
    biaoji[i][j]=mm;
    mm++;
}
printf("11111..../n");
for(i=0;i<num;i++)
for(j=0;j<store[i];j++)
{
//printf("2......./n");
unsigned short int *s1=(unsigned short int*)fru[i][j];
for(ii=i;ii<num;ii++)
{    if(ii==i) jj=j+1;
        else jj=0;
for(;jj<store[ii];jj++)
    {    
//printf("3......./n");
    //    unsigned short int *s2=(unsigned short int*)fru[ii][jj];
    //    unsigned short int *ss1=s1;
    //    printf("*s1 is%d/n",*s1);
        s1=(unsigned short int*)fru[i][j];
               while(*s1>=0x8000)
        {
//        printf("*s1 is%d/n",*s1);
    //    unsigned short int *ss1=s1;
        unsigned short int *s2=(unsigned short int*)fru[ii][jj];
                while(*s2>=0x8000)   
        {    // printf("*s2 is %d/n",*s2);
            if ((*s1)==(*s2))
            {    biaoji[ii][jj]=biaoji[i][j];
//                    printf("ii jj i j biaoji is%d %d %d %d %d/n",ii,jj,i,j,biaoji[i][j]);
                 break;
            }
            else
            {s2++;}
    //    printf("5...");
           
        }
        s1++;
//        printf("4...");
          }
    //    s1=ss1;   
    }   




}
}
for(i=0;i<num;i++)
for(j=0;j<store[i];j++)
printf("biaoji i j is%d/n",biaoji[i][j]);

int cal[50];
int total=0;
int k;
int t1,t2;
for(i=0;i<num;i++)
{
 int result=0;   
for(j=0;j<num;j++)
{   
if((time1[j]<=time2[i])&&(time2[j]>=time1[i]))
      {
    for(k=0;k<store[j];k++)  
    {
        cal[total]=biaoji[j][k];
            total++;
    }
      }
}
for(t1=0;t1<total;t1++)
for(t2=t1+1;t2<total;t2++)
{
    if (cal[t1]==cal[t2]) break;
        else if(t2==total-1) result++;   

}
if(result>=5) {printf("shuiguo kai hui la/n"); return;}
}
printf("kai mao mao hui/n");
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章