Pomoc s poliami – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Pomoc s poliami – C / C++ – Fórum – Programujte.comPomoc s poliami – C / C++ – Fórum – Programujte.com

 

LALO
~ Anonymní uživatel
19 příspěvků
9. 11. 2011   #1
-
0
-

Zdravim vedel by mi niekto pomoct s tymto cvicenim... Uz na tom stojim tri hodiny a nist. Dakujem

Opravte chyby v nasledujúcom programe. Jeho úlohou je uloženie súčtov čísel 1,1+2,1+2+3,..., 1+2+3+...+n za sebou do poľa.

#include<stdio.h>

int main()
{
	int pole[100];
	int i, j , n , sum;
	scanf("%c",&n);
	for(i = 0; i < n; i++)
		sum = 0;
	for(j = 0; j < 100; i++)
		sum += j;
	pole[i] = sum;
        
}
Nahlásit jako SPAM
IP: 212.5.206.–
KIIV
~ Moderátor
+43
God of flame
9. 11. 2011   #2
-
0
-

trivialni domaci ulohy ... co to proste zkusit zkompilovat a podivat se, jak to funguje? Nedelegovat TVOJI praci na ostatni...

jinak samozrejme chyb je tam hromada... je tam naznak neceho, ale da se to udelat i snadneji .. taky zadny kontroly vstupu, rozsahu pole... a tak dale a tak dale

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
LALO
~ Anonymní uživatel
19 příspěvků
9. 11. 2011   #3
-
0
-

#2 KIIV
k comu som ja dosiel je toto..... komplilujem a kompilujem a nist.

Viem ako funguje for vies zhruba ako funguju polia ale netusim ako dokazem cez tie dve for urobit aby sa do pamate ukladala hodnota ktora bola v zadani.

#include<stdio.h>

int main()
{
	int pole[100];
	int i, j , n , sum;
	scanf("%d",&n);
	for(i = 0; i < n; i++)
	{
		sum = 0;
	}
	for(j = 0; j < 100; i++)
	{
		sum += j;
		pole[i] = sum;
	}
        
}
Nahlásit jako SPAM
IP: 212.5.206.–
LALO
~ Anonymní uživatel
19 příspěvků
9. 11. 2011   #4
-
0
-

Asik som uz na to prisiel. chel by som vas len poprosit ci sa mi na to pozriete ci som splnil zadanie..... a nechapem preco taj je ten prvy for podla mna je tam zbytocny

toto je moj vysledok 

#include<stdio.h>

int main()
{
	int pole[100];
	int i, j , n , sum;
	scanf("%d",&n);
	for(i = 0; i < n; i++)
	{
		sum = 0;
	}
	for(j = 0; j < 100; i++)
	{
		sum += j;
		j++;
		pole[i] = sum;
	}
        
}
Nahlásit jako SPAM
IP: 212.5.206.–
KIIV
~ Moderátor
+43
God of flame
9. 11. 2011   #5
-
0
-

presne... prvni for je naprosto zbytecnej... inicializaci  sum muzes udelat rovnou u jeji deklarace

pak nepotrebujes tolik zbytecnych promennych...  (predpokladam ze "autor" to chtel udelat jako vnorene cykly - prvni a v nem druhy - ale to je stejne zbytecne)

jeste musis opravit moznost, ze scanf nedostane na vstupu zadne cislo, ze dostane moc velke cislo a tak dale

a taky by to chtelo pocitat s tim, ze zacinas   0...

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
LALO
~ Anonymní uživatel
19 příspěvků
9. 11. 2011   #6
-
0
-

Dakujem ti

jedine na com som este prisiel ze som zmenil for(j = 1; j < 100; i++)

a do adresy 0 mi nehadze 0 ale nejake hausnumero.....

Vies mi poradit

Nahlásit jako SPAM
IP: 212.5.206.–
KIIV
~ Moderátor
+43
God of flame
9. 11. 2011   #7
-
0
-

to je prave to ze si zmenil j a pole se indexuje od 0 - takze tam se ti nic neulozi.. zustane smeti z ram

finta bude jinde... :)

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
street punk+1
Návštěvník
9. 11. 2011   #8
-
0
-

#6 LALO
 

for(j = 0; j < 100; i++)
	{
		sum += j;
		j++;
		pole[i] = sum;
	}

Načo tam používaš premennú i ? kludne ju vyhoď. A keď chceš, aby sa ti to hneď započítavalo od 1, tak daj 
sum += (j + 1);

Nahlásit jako SPAM
IP: 147.175.179.–
KIIV
~ Moderátor
+43
God of flame
9. 11. 2011   #9
-
0
-

#8 street punk
tak timdle sis spis zavaril na segfault :D

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
LALO
~ Anonymní uživatel
19 příspěvků
9. 11. 2011   #10
-
0
-

tu premennu tam chcem nechat...... len neviem ako urobit to aby do pola 0 nehadzal odpad z ram ako napisal KIIV :D

ide mi hlavu rotrhnut, viem ze to je najaka hlupost ale nie a nie na nu prist

Nahlásit jako SPAM
IP: 212.5.206.–
street punk+1
Návštěvník
9. 11. 2011   #11
-
0
-

prečo, čo je na tomto zle ?

 for(j = 0; j < 100; j++)
	{
		sum += (j + 1);
		pole[j] = sum;
	}
Nahlásit jako SPAM
IP: 147.175.179.–
KIIV
~ Moderátor
+43
God of flame
9. 11. 2011   #12
-
0
-

#10 LALO
street punk ti nahodil reseni tak nejak "mimo rec":   sum += (j + 1);

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
LALO
~ Anonymní uživatel
19 příspěvků
9. 11. 2011   #13
-
0
-

chalani uz som pokrocil mozno to bude uz aj dobre. Len neviem ci to zadanie che po mne aj ine cisla ako 1.....

to by mi potom neslo asik

#include<stdio.h>

int main()
{
	int pole[100];
	int i, j , n , sum;
	scanf("%d",&n);
	for(i = 0; i < n; i++)
	{
		sum = 0;
	}
	i -= 1;
	for(j = 0; j < 100; i++)
	{
		sum += j;
		j++;
		pole [i] = sum;	
					
	}
        
}
Nahlásit jako SPAM
IP: 212.5.206.–
street punk+1
Návštěvník
9. 11. 2011   #14
-
0
-

načo tam stále používaš to prvé for ? :D

include <stdio.h> 

int main (void){ 
   int j;
   int sum = 0;
   int pole [100];

   for(j = 0; j < 100; j++)
	{
		sum += (j + 1);
		pole[j] = sum;
	}

   return 0; 
}
Nahlásit jako SPAM
IP: 147.175.179.–
street punk+1
Návštěvník
9. 11. 2011   #15
-
0
-

kludne si tam pridaj tento riadok a skontroluj si to sním

for(j = 0; j < 100; j++)
	   printf ("%i\n", pole[j]);
Nahlásit jako SPAM
IP: 147.175.179.–
LALO
~ Anonymní uživatel
19 příspěvků
9. 11. 2011   #16
-
0
-

Ahoj street punk

neveim ci to je dobre lebo cislo 1 ulozi do adresy 0 a ja som cital ze ta sa nesmie pouzivat

Nahlásit jako SPAM
IP: 212.5.206.–
street punk+1
Návštěvník
9. 11. 2011   #17
-
0
-

#16 LALO
Opravte chyby v nasledujúcom programe. Jeho úlohou je uloženie súčtov čísel 1,1+2,1+2+3,..., 1+2+3+...+n za sebou do poľa.
No tak podla tohoto zadania to je dobre. hneď do prvého prvku poľa sa ti musí dosadiť jednotka. šak daj si tam ten výpis, čo som ti dotatočne dal a tam pekne uvidíš, že ti to robí podla zadania. Viac ti už neviem pomôcť, bo musím ísť off

Nahlásit jako SPAM
IP: 147.175.179.–
LALO
~ Anonymní uživatel
19 příspěvků
9. 11. 2011   #18
-
0
-

no niesom si isty

lebo na tej nasej skole davaju cudne zadania......

Nahlásit jako SPAM
IP: 212.5.206.–
KIIV
~ Moderátor
+43
God of flame
9. 11. 2011   #19
-
0
-

#18 LALO
musis jet od nuly.. jinak ti podminka oreze vysledek jen do   n-1  a v zadani mas jet az do  n

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
LALO
~ Anonymní uživatel
19 příspěvků
9. 11. 2011   #20
-
0
-

no ja som sa dostal sem ako som uz pisal.

A fakt uz neviem ako dalej vedel by si mi presne napisat co tam mam zle prosim ta.

#include<stdio.h>

int main()
{
int pole[100];
int i, j , n , sum;
scanf("%d",&n);
for(i = 0; i < n; i++)
{
  sum = 0;
}
i -= 1;
for(j = 0; j < 100; i++)
{
  sum += j;
  j++;
  pole [i] = sum;
    
}
       
}

Nahlásit jako SPAM
IP: 212.5.206.–
KIIV
~ Moderátor
+43
God of flame
9. 11. 2011   #21
-
0
-

chvili to vypadalo ze ses nekam pohnul... ted uz ses zase zpet na zacatku... od street punka sis vzal presne ten kod co sem napadl jako picovinu a to ze to v jinem prispevku uz vyresil zase prehlizis...

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
LALO
~ Anonymní uživatel
19 příspěvků
9. 11. 2011   #22
-
0
-

ja som z toho zmeteny ine veci mi idu ale tieto polia nechapem.......

daj nam zadanie ktore podla mna nie je presne definovane tak sa snazim niekoho najst kto mi bude vediet pomoct.

ja som nikdy neprogramoval a ani sa do buducna nechystam ale snazim prejst premetom

Nahlásit jako SPAM
IP: 212.5.206.–
KIIV
~ Moderátor
+43
God of flame
9. 11. 2011   #23
-
0
-

takze jeste jednou:

nepotrebujes prvni cyklus!  musis akorat vynulovat sum;

ve druhem cyklu staci jen i  a proboha nemen pak i uvnitr cyklu

kdyz pricitas k sum tak pricti  i+1 !!!!  pak uz jen hodit do sum na pozici i

druhej cyklus nemusi jet az do 100

Musis taky kontrolovat co nacetl scanf - muze vratit 0 a n pak bude nezmenene (a jelikoz neni nikde inicializovane - tak tam bude zase nejaky nahodny cislo)

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
LALO
~ Anonymní uživatel
19 příspěvků
9. 11. 2011   #24
-
0
-

DAKUJEM ti velice pekne tak som to upravil nasledovne

#include<stdio.h>
/* Opravte chyby v nasledujúcom programe. Jeho úlohou je uloženie súčtov čísel 1,1+2,1+2+3,..., 1+2+3+...+n za sebou do poľa. */
int main()
{
	int pole[100];
	int i, n , sum=0;
	scanf("%d",&n);
		for(i = 0; i < n; i++)
		{
			sum += i;
		pole[i] = sum;
		}
Nahlásit jako SPAM
IP: 212.5.206.–
KIIV
~ Moderátor
+43
God of flame
9. 11. 2011   #25
-
0
-

no jeste si stale nepochopil ze index zacina od 0 takze v prvnim prvku pole budes mit 0 a ne 1

i je vzdy o 1 mensi nez cislo, ktere potrebujes pricitat ... co z toho plyne?

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
LALO
~ Anonymní uživatel
19 příspěvků
9. 11. 2011   #26
-
0
-

nechapem.... ked si to ladim cez F10 tak ked si pozriem ake cisla mam poli tak mi to sedi

pole 0  cislo 0

       1  cislo 1

       2  cislo 3

       3  cislo 6

to cislo aspon tak chapem z toho zadanie 1, 1+2, 1+2+3, 1+2+3+4  

Nahlásit jako SPAM
IP: 212.5.206.–
Tchibo0
Návštěvník
9. 11. 2011   #27
-
0
-

#26 LALO

souhlasim s KIIV zacal bych od 0 indexu s prvnim prvkem rady

viz: 

#include<stdio.h>

int main()
{
	int pole[100],n; // staci pole a vstupni hodnota


	printf("Zadej n:");
	scanf("%i",&n); // 

	pole[0]=1; // obejdeme Sum
	for(int j = 1; j < n; j++)
		pole[j] = j+1+pole[j-1]; // do pole[j] pricteme j+1 (kvuli indexu pole od 0) a predesle pole[j-1] 
        
}
Nahlásit jako SPAM
IP: 109.80.248.–
Tchibo
LALO
~ Anonymní uživatel
19 příspěvků
9. 11. 2011   #28
-
0
-

Ja som pouzil od 1 preto lebo v skole nam hovorili ze 0 by nemala byt obsadena.......

Alebo skola opat zavadza?????

Nahlásit jako SPAM
IP: 212.5.206.–
KIIV
~ Moderátor
+43
God of flame
9. 11. 2011   #29
-
0
-

jeste jednou:   mas pole naplnit timto:  1, 1+2, 1+2+3, 1+2+3+4 .....

ale ty tam mas toto:    0, 1, 1+2, 1+2+3, 1+2+3+4    (a to jeste pro n=5) to mas taky blbe protoze posledni polozka je jen soucet cisel od 1 do 4)

to jak je indexovany pole je uplne jedno... v zadani je JASNE receno co tam ma byt jako prvni prvek (a prvni prvek je na indexu 0... na indexu 1 je uz druhy prvek!!!!!!!!)

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
street punk+1
Návštěvník
9. 11. 2011   #30
-
0
-

#29 KIIV
To prvé nebola pičovina. A potom som sa neopravil, lebo som nemal čo, ja som to tak myslel od začiatku, len som tam napísal len ten jeden príkaz. To že čo má odtial vyhodiť a čo upraviť som tam nedal, zato to možno nedávalo až tak zmysel, ale mne išlo len o ten príkaz. Až v ďaľom príspevku som ho dal do bloku

Nahlásit jako SPAM
IP: 188.112.127.–
KIIV
~ Moderátor
+43
God of flame
9. 11. 2011   #31
-
0
-

tak jak tak to obslehl ... a tak jak si to tam mel to bylo zraly jen na zapis mimo pole (coz se mu urcite i povedlo)

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
LALO
~ Anonymní uživatel
19 příspěvků
10. 11. 2011   #32
-
0
-

KIIV dakujem ti za podrobne vysvetlenie, vcera som to uz vzal ale dnes som to hned pochopil a prerobil som ten program snad uz bude dobry.

mohol by si ho pozriet ci to je uz teraz spravne. Dakujem

#include<stdio.h>

/* Opravte chyby v nasledujúcom programe. 
Jeho úlohou je uloženie súčtov čísel 
1,1+2,1+2+3,..., 1+2+3+...+n za sebou do poľa. */

int main()
{
	int pole[100];
	int i, n , sum=0;
	scanf("%d",&n);
		for(i = 0; i < n; i++)
		{
			sum += (i+1);
		pole[i] = sum;
		}
}
Nahlásit jako SPAM
IP: 212.5.206.–
KIIV
~ Moderátor
+43
God of flame
10. 11. 2011   #33
-
0
-

tak si to zkus:

1) zadej na vstupu napriklad  100000

2) zadej misto cisla treba: blabla   (kdyby to naaahodou fungovalo nejak normalne tak nahod inicializaci n=100000 pred scanf - bude tam nejaky smeti a chceme prece demonstrovat ze to nefunguje spravne)

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
street punk+1
Návštěvník
10. 11. 2011   #34
-
0
-

#32 LALO
Skratka ked vytvoris pole o 100 prvkoch, tak musis nacitat presne tolko prvkov, lebo ostatne prvky nebudu inicializovane. Cize tu hodnotu ktoru mas v poli,tak ju treba porovnavat aj v cykle. Odporucam si to 100 ulozit do premennej a nasledne tu premennu porovnat

Nahlásit jako SPAM
IP: 147.175.101.–
LALO
~ Anonymní uživatel
19 příspěvků
10. 11. 2011   #35
-
0
-

tak takto potom

#include<stdio.h>

/* Opravte chyby v nasledujúcom programe. 
Jeho úlohou je uloženie súčtov čísel 
1,1+2,1+2+3,..., 1+2+3+...+n za sebou do poľa. */

int main()
{
	int pole[100];
	int i, n , sum=0;
	scanf("%d",&n);
	if ( n <= 100 )
	{
		for(i = 0; i < n; i++)
		{
			sum += (i+1);
		pole[i] = sum;
		}
	}
	else
	{}
}
Nahlásit jako SPAM
IP: 212.5.206.–
street punk+1
Návštěvník
10. 11. 2011   #36
-
0
-

#35 LALO
 

#include <stdio.h> //hlavička

int main () // hlavný program
{ 
   int j; // pomocná premenná
   int sum = 0; // počítadlo nastavené na nulu, aby v ňom nebol uložený bordel z pamäti
   int pole [100]; // vytvoríš pole o 100 prvkoch int

   for(j = 0; j < 100; j++) // cyklus začína od 1. prvku a končí posledným. 
/* Keď vytvoríš pole 300, tak budeš porovnávať i < 300; 
Alebo keď zadáš veľkosť pola z klávesnice, tak si vytvoríš premennú int prd;
zadáš do nej hodnotu ktorú chceš scanf ("%i", &prd);
vytvoríš si pole o prd prvkov int pole[prd];
a následne v cykle porovnávaš i < prd;
*/
	{
		sum += (j + 1);// počítadlo sa ti nastaví na 1, čo potrebuješ, lebo j je nula
		pole[j] = sum;//do prvého prvku poľa sa ti dosadí hodnota počítadla
	}

   for(j = 0; j < 100; j++)// tento cyklus slúži len na kontrolu
	   printf ("%i\n", pole[j]);//vypíše prvky

   return 0; //vráti nulu
}
Nahlásit jako SPAM
IP: 147.175.179.–
16. 11. 2011   #37
-
0
-

nie som C++ kar ale logiku je takato nie ?

class Program
    {
        static void Main(string[] args)
        {
            int suma = 0;
            int cisla_Do20 = 20;
            int [] pole_Cisel = new int [cisla_Do20];
            for (int i = 0; i <cisla_Do20 ; i++)
            {
                suma = suma + (i + 1);
                pole_Cisel[i] = suma;
            }
            foreach (var item in pole_Cisel)
            {
                Console.WriteLine(item);
            }
            Console.ReadLine();
        }
    }

Nahlásit jako SPAM
IP: 85.248.44.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 35 hostů

Podobná vlákna

Pomoc — založil piwolukas

Pomoc — založil Aikon

Pomoc — založil Michael

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý