On 11/25/2010 04:55 PM, Jornada Del Muerto wrote: > O cia kokia C ? gal dosine kokia ir islendi per segmento dydi ar kazkas tokio... > > > "Vilius Jakas"<vilius@anet.lt> wrote in message news:iclt82$nju$1@trimpas.omnitel.net... >> Sveiki. Band=iau spresti IT olimpiados uzdavinius ir su tam tikrais >> testais gaunu arba blogą atsakymą arba segmentation fault >> >> Štai kodas >> >> #include<stdio.h> >> >> int main(){ >> >> int Pi[100],Ti[100], N, S,i,sum=0,max=0; >> FILE *in, *out; >> in=fopen("keliautojas-vyr.in","r"); >> out=fopen("keliautojas-vyr.out","w"); >> >> >> //Nuskaitymas >> fscanf(in,"%d %d",&N,&S); >> for(i=0;i<N;i++) >> fscanf(in,"%d %d",&Pi[i],&Ti[i]); >> for(i=0;i<N;i++) >> printf("%d %d\n",Pi[i],Ti[i]); >> //zaidziam >> S=S-1; //nes masyve skaiciai pradedami nuliu >> >> for(i=0;i<N;i++){ >> sum=sum+(Pi[S]); //prideda pinigus >> if(sum>max)max=sum; >> Pi[S]=0; //panaikina laukelio reiksme >> S=Ti[S]; //sekantis laukelis >> } >> >> //fprintf(out,"%d\n",sum); >> >> printf("suma %d \n",sum); >> //for(i=0;i<N;i++) >> // printf("%d %d\n",Pi[i],Ti[i]); >> >> getchar(); >> getchar(); >> return 0; >> } >> >> O štai čia keliautojas-vyr.in su kuriuo gaunu seg fault >> >> 5 3 >> 2 5 >> 1 1 >> -7 5 >> -4 2 >> 2 4 >> Taip, dosinė(iš terminalo leidžiu) Supratau klaidą >> for(i=0;i<N;i++){ >> sum=sum+(Pi[S]); //prideda pinigus >> if(sum>max)max=sum; >> Pi[S]=0; //panaikina laukelio reiksme >> S=Ti[S]; //sekantis laukelis o turėtu būti >> for(i=0;i<N;i++){ >> sum=sum+(Pi[S-1]); //prideda pinigus >> if(sum>max)max=sum; >> Pi[S-1]=0; //panaikina laukelio reiksme >> S=Ti[S-1]; //sekantis laukelis dėl tos pačios masyvo numeravimo savybės