void WalkTestLights::HandleDynLights () { if (flashlight) { iSector* oldsector = flashlight->GetMovable()->GetSectors()->Get (0); iSector* newSector = walktest->views->GetCamera ()->GetSector(); if (oldsector != newSector) { iLightList* ll = oldsector->GetLights(); ll->Remove (flashlight); } if (oldsector != newSector) { iLightList* ll = walktest->views->GetCamera ()->GetSector ()->GetLights (); ll->Add (flashlight); } flashlight->GetMovable()->SetTransform (FlashlightShift (walktest->views->GetCamera ()->GetTransform ())); flashlight->GetMovable()->UpdateMove(); } size_t i; for (i = 0 ; i < dynamic_lights.GetSize () ; i++) { iLight* dyn = dynamic_lights[i]; csRef<WalkDataObject> dao ( CS::GetChildObject<WalkDataObject>(dyn->QueryObject())); if (dao) if (HandleDynLight (dyn)) { dynamic_lights.DeleteIndex (i); i--; } } }
void sxle(int A[100],int n) { int i,j; for(i=0;i<n-1;i++) for(int j=i;j<n;j++) if(A[j]%2!=0&&A[i]>A[j]&&A[i]%2!=0) dao(&A[i],&A[j]); }
int main() {int a,b,c,d; d=0; int ans[10000];int cc,ccc; cc=1; while(scanf("%d+%d=%d",&a,&b,&c)!=EOF){ // printf("%d",dao(a)); if (dao(a)+dao(b)==dao(c)) ans[cc]=1; else ans[cc]=0; cc++; if(a==0 && b==0 && c==0 )break; } for(ccc=1;ccc<cc;ccc++){ if (ans[ccc]==1) printf("True\n"); else printf("False\n"); } return 0; }
/* main */ int main (int argc, char **argv) { char buf[100]; const char *commands[]={"-c", "-p", "-t", "-d", "-a", NULL}; db_t db; db.next = NULL; pdb_t dblist; int i; FILE *f; TRY (f = fopen(DB,"a+")); if (argc<2) { usage: printf ("Usage: %s [commands]\n" "-c Create new entry.\n" "-p Print the latest entry.\n" "-t Print all entries sorted by title.\n" "-d Print all entries sorted by date.\n" "-a Print all entries sorted by author.\n",argv[0]); fclose (f); return 0; } for (i = 0; commands[i] && strcmp(argv[1],commands[i]); i++); switch (i) { case CREATE: printf("-c Create a new entry.\n"); printf("Title :"); if((scanf(" %25[^\n]",db.title )) < 0)break; printf("Author Firstname:"); if((scanf(" %25[^\n]",db.first_name)) < 0)break; printf("Author Lastname :"); if((scanf(" %25[^\n]",db.last_name )) < 0)break; printf("Date 10-12-2000 :"); if((scanf(" %10[^\n]",buf )) < 0)break; printf("Publication :"); if((scanf(" %99[^\n]",db.publ )) < 0)break; db.date=str2time (buf); dao (CREATE,f,&db,NULL); break; case PRINT: printf ("-p Print the latest entry.\n"); while (!feof(f)) dao (READLINE,f,&db,NULL); dao (PRINT,f,&db,NULL); break; case TITLE: printf ("-t Print all entries sorted by title.\n"); dblist = dao (READ,f,&db,NULL); dblist = dao (SORT,f,dblist,by_title); dao (PRINT,f,dblist,NULL); dao (DESTROY,f,dblist,NULL); break; case DATE: printf ("-d Print all entries sorted by date.\n"); dblist = dao (READ,f,&db,NULL); dblist = dao (SORT,f,dblist,(int (*)(const void *,const void *)) by_date); dao (PRINT,f,dblist,NULL); dao (DESTROY,f,dblist,NULL); break; case AUTH: printf ("-a Print all entries sorted by author.\n"); dblist = dao (READ,f,&db,NULL); dblist = dao (SORT,f,dblist,by_last_name); dao (PRINT,f,dblist,NULL); dao (DESTROY,f,dblist,NULL); break; default: { printf ("Unknown command: %s.\n",strlen(argv[1])<10?argv[1]:""); goto usage; } } fclose (f); return 0; }
/* Data Access Object (DAO) */ static pdb_t dao (int cmd, FILE *f, pdb_t in_db, sort sortby) { pdb_t *pdb=NULL,rec=NULL,hd=NULL; int i=0,ret; char buf[100]; switch (cmd) { case CREATE: fprintf (f,"\"%s\",",in_db->title); fprintf (f,"\"%s\",",in_db->first_name); fprintf (f,"\"%s\",",in_db->last_name); fprintf (f,"\"%s\",",time2str(&in_db->date)); fprintf (f,"\"%s\" \n",in_db->publ); break; case PRINT: for (;in_db;i++) { printf ("Title : %s\n", in_db->title); printf ("Author : %s %s\n", in_db->first_name, in_db->last_name); printf ("Date : %s\n", time2str(&in_db->date)); printf ("Publication : %s\n\n", in_db->publ); if (!((i+1)%3)) { printf ("Press Enter to continue.\n"); ret = scanf ("%*[^\n]"); if (ret<0) return rec; /* handle EOF */ else getchar(); } in_db=in_db->next; } break; case READLINE: if((fscanf(f," \"%[^\"]\",",in_db->title ))<0)break; if((fscanf(f," \"%[^\"]\",",in_db->first_name))<0)break; if((fscanf(f," \"%[^\"]\",",in_db->last_name ))<0)break; if((fscanf(f," \"%[^\"]\",",buf ))<0)break; if((fscanf(f," \"%[^\"]\" ",in_db->publ ))<0)break; in_db->date=str2time (buf); break; case READ: while (!feof(f)) { dao (READLINE,f,in_db,NULL); TRY (rec=malloc(sizeof(db_t))); *rec=*in_db; /* copy contents */ rec->next=hd;/* to linked list */ hd=rec;i++; } if (i<2) { puts ("Empty database. Please create some entries."); fclose (f); exit (0); } break; case SORT: rec=in_db; for (;in_db;i++) in_db=in_db->next; TRY (pdb=malloc(i*sizeof(pdb_t))); in_db=rec; for (i=0;in_db;i++) { pdb[i]=in_db; in_db=in_db->next; } qsort (pdb,i,sizeof in_db,sortby); pdb[i-1]->next=NULL; for (i=i-1;i;i--) { pdb[i-1]->next=pdb[i]; } rec=pdb[0]; FREE (pdb); pdb=NULL; break; case DESTROY: { while ((rec=in_db)) { in_db=in_db->next; FREE (rec); } } } return rec; }