Pereiti prie turinio

Pagalba su C kalba


Rekomenduojami pranešimai

Sveiki,

 

Reikia pagalbos su uzdaviniu:

 

Rasti sritį iš 10 elementų, kurios suma būtų maksimali.

 

Masyvas sugeneruojamas atsitiktine tvarka is 200 nariu. Suma randu, masyva sugeneruoju, taciau iskilo problemos su pastumimu per viena nari i prieki ir vel skaiciavimu per nauja. Bandziau daryti su for ciklu, nesigauna, nes dar ne ypac geros C kalbos zinios. Gal galite padeti? Kaip turetu atrodyti pastumimo per viena nari ciklo pradzia.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

mano kodas atrodo taip:

 

#include <stdio.h>
#include <stdlib.h>
int mas[200]; /* apdorojamas masyvas */
int main(void) {
int i; /* masyvo indeksai */
int sum;
char ch;
rand(); /* rand inicializacija */
/* masyvo u=pildymas atsitiktiniais skaiciais */
for (i=0; i<200; mas[i++]=rand()%40+10 );
/* pirminio masyvo isvedimas */
printf("Sugeneruotas masyvas:\n");
for (i=0; i<200; printf("%3d ",mas[i++]));
putchar('\n');
putchar('\n');
sum = 0;
for(i = 0; i<200; i++)
{
if (i<10) {
	sum+=mas[i];
}
}

/* rezultatu isvedimas */
printf("Rezultatas:\n");
putchar('\n');
printf(" Maksimali suma:%3d ",sum);
printf("\n");
printf("Jeigu norite baigti?");
printf("\n");
printf("Parasykite raide T ir paspauskite Enter klavisa> ");
while ((ch=getchar()) != 'T') /* skirta isejimui is programos */
putchar (ch);
return 0

 

Bandžiau pridėti Jūsų duotą pavyzdį irgi gaunasi tas pats, apskaičiuoja tik 10 narių, keičiau vietoj 10 į i+9, tada apskaičiuoja visų masyvo narių sumą, o man reikėtų, kad atskirai skaičiuotų tarkim: 1-10 narių sumą, tada 2-11 ir t.t. jau kelios dienos kaip laužau galvą ir niekaip neina sugalvot.

 

aišku dar reikia palyginti sumas ir išrinkti dižiausią, bet aš jau šitą sugalvojęs kaip daryt:

maxsum = 0;
if (maxsum <= sum) {
maxsum = sum;
}
else {
maxsum=maxsum;
}

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Viskas susitvarkiau :)

 

Jei kam reikės:

 

#include <stdio.h>
#include <stdlib.h>
int mas[300]; /* apdorojamas masyvas */
int main(void) {
int i,j,k; /* masyvo indeksai */
int sum, maxsum=0;
char ch;
rand(); /* rand inicializacija */
/* masyvo u=pildymas atsitiktiniais skaiciais */
for (i=0; i<200; mas[i++]=rand()%40+10 );
/* pirminio masyvo isvedimas */
printf("Sugeneruotas masyvas:\n");
for (i=0; i<200; printf("%3d ",mas[i++]));
putchar('\n');
putchar('\n');
sum = 0;
j=0;
i=0;
k=9;
while (i<=200)
{
for (;i<k;i++)
{
   sum+=mas[i];
}
k++;
j++;
i=j;
   printf(" suma:%3d ",sum);
   printf("\n");
if (maxsum <= sum)
maxsum = sum;
sum=0;
}

/* rezultatu isvedimas */
printf("Rezultatas:\n");
putchar('\n');
printf(" Maksimali suma:%3d ",maxsum);
printf("\n");
printf("Jeigu norite baigti?");
printf("\n");
printf("Parasykite raide T ir paspauskite Enter klavisa> ");
while ((ch=getchar()) != 'T') /* skirta isejimui is programos */
putchar (ch);
return 0;
}

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...