百度水果開會時段解答(經過測試)
雖然程序經過測試,但是其中一些語句用的不是很規範,最後,我只將結果輸出到屏幕上,沒有寫入文件。
程序太長,以後會慢慢改進。
#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");
}
程序太長,以後會慢慢改進。
#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");
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.