Kezdőoldal » Számítástechnika » Programozás » Akad itt fent egy programozó...

Akad itt fent egy programozó emberke, akitől segítséget kérhetnék?

Figyelt kérdés

Arról lenne szó, hogy nem rég csináltam egy programot mely 1-10-ig felsorolja az összes számkombinációt, úgy hogy minden szám csak egyszer szerepelhet a számsorba és egy kombináció is csak egyszer szerepelhet, tehát nem lehetnek még egyszer ugyanazok a számok csak más sorrendben. Tudjátok, úgy mintha azt számolnánk ki hány lottó kombináció van.


A kérdésem az lenne, hogy ezt a programot hogy tudnám továbbfejleszteni úgy, hogy minden sorozat mellé egyesekből és kettesekből álló sort ír a következő képpen:

ha a sorozat tartalmaz 6-ost, vagy 7-est akkor oda ketteseket ír, különben egyeseket.


pl:

1,2,3,4,5 itt a sorozat és ezt írja mellé: 1,1,1,1,1 (mivel itt nincs 6-os, vagy 7-es), de ide már ezt írja

1,2,3,4,6 ------> 1,1,1,1,2, majd a végén az 1-es 2-eseket összeadja:

1,2,3,4,6 ------> 1,1,1,1,2 ------->6


Tehát leír két számsort plusz még az utolsó összegét is.


Remélem értelmesen letudtam írni. És köszönöm a segítséget annak aki nem túl fáradt ehhez:)



2012. jún. 1. 15:22
 1/7 A kérdező kommentje:

Egy lényegeset elfelejtettem. Ha lehet akkor C nyelven légyszíves mert én csak úgy tudok programozni. És itt van amit eddig alkottam:


int main()

{

FILE *f;

int i=1,j=1,k=1,l=1,m=1;

f=fopen("szamok.txt","w");

while (i<=10)

{

while(j<=10)

{

if (j==i)

{

j++;

k=j;

continue;

}

while(k<=10)

{

if (k==i || k==j)

{

k++;

l=k;

continue;

}

while(l<=10)

{

if (l==k || l==j || l==i)

{

l++;

m=l;

continue;

}

while(m<=10)

{

if(m==l || m==k || m==j || m==i)

{

m++;

continue;

}

fprintf(f,"%i;%i;%i;%i;%i",i,j,k,l,m);

fprintf(f,"\n");

m++;

}

l++;

m=l;

}

k++;

l=k;

}

j++;

k=j;

}

i++;

j=i;

}

return 0;

}

2012. jún. 1. 15:29
 2/7 A kérdező kommentje:

A program elé még ezt is be lehet írni:


#include <stdio.h>

#include <stdio.h>

2012. jún. 1. 15:30
 3/7 anonim ***** válasza:

Ha a számokat egy ötelemű tömbben tárolod, akkor talán legegyszerűbb, ha egy másik tömböt csinálsz, amit feltöltesz attól függően, mi van az első tömbben. Legjobb lenne az első tömb feltöltésekor rögtön a másikat is kitölteni, és utána az összeghez csak a második tömbön kell végigszaladni a kiiratás után.


ciklus a kombinációkra, x=0..1000


ciklus a számokra, i=0..4

tömb1[i]=véletlenszám

ha tömb1[i]=6 vagy tömb1[i]=7 akkor

tömb2[i]=2

egyébként

tömb2[i]=1


ciklus vége


ciklus i=0..4: tömb1[i] kiiratás

ciklus i=0..4: tömb2[i] kiiratás és rögtön összegzés

összeg kiiratás


ciklus vége

2012. jún. 1. 15:38
Hasznos számodra ez a válasz?
 4/7 A kérdező kommentje:
Lehet, hogy egyre gondolunk. Az én ötletem az, hogy csinálok mèg öt változót az egyes-kettes sorokhoz meg egy hatodik változót az összeghez.
2012. jún. 1. 16:43
 5/7 anonim ***** válasza:

@15:38-as hozzászóló azt írta hogy tömbbe tárold. Te meg egészen mást. Úgy tűnik azt sem tudod mi a tömb.

Egyébként a kódba elég sok önhasonló kódrészlet van. Ez az egyik az ami kerülendő programozás során.


A te kódodnál maradva íme tömbbel:

#include <stdio.h>

#include <stdio.h>

int main()

{

FILE *f;

int i;

int t[5];

for (i=0;i<5;i++){t[i]=1;}

f=fopen("szamok.txt","w");

while (t[0]<=10)

{

while(t[1]<=10)

{

if (t[1]==t[0])

{

t[1]++;

t[2]=t[1];

continue;

}

while(t[2]<=10)

{

if (t[2]==t[0] || t[2]==t[1])

{

t[2]++;

t[3]=t[2];

continue;

}

while(t[3]<=10)

{

if (t[3]==t[2] || t[3]==t[1] || t[3]==t[0])

{

t[3]++;

t[4]=t[3];

continue;

}

while(t[4]<=10)

{

if(t[4]==t[3] || t[4]==t[2] || t[4]==t[1] || t[4]==t[0])

{

t[4]++;

continue;

}

/*szamok kiirasa*/

for (i=0;i<5;i++){

fprintf(f,"%d",t[i]);

if (i<4){fprintf(f,";");}

};


fprintf(f," ------> ");

/*szamok fuggvenyeben 1-es vagy 2-es kiratas*/

for (i=0;i<5;i++){

fprintf(f,"%d", (t[i]==6)||(t[i]==7) ? 2 : 1);

if (i<4){fprintf(f,";");}

};


fprintf(f,"\n");

t[4]++;

}

t[3]++;

t[4]=t[3];

}

t[2]++;

t[3]=t[2];

}

t[1]++;

t[2]=t[1];

}

t[0]++;

t[1]=t[0];

}

return 0;

}


Egy tömböt használtam, az előttem szóló azt írta hogy 2-t használj, igazából 1-el is megoldható. Ha későbbi változatba az 1-es 2-esekből álló sorozattal is kell még valamit csinálni akkor érdemes lehet tömbbe tárolni már most is.

A kódba az összegzést kihagytam.

2012. jún. 3. 17:04
Hasznos számodra ez a válasz?
 6/7 A kérdező kommentje:
köszönöm szépen
2012. jún. 3. 19:19
 7/7 A kérdező kommentje:
Tökéletesen lefutott az utolsó kommentelő programja. Köszönöm szépen, de mégis a 2 tömbössel csináltam, mert az egy tömbösnél nem tudtam összeadni a számokat az 1-2-es sorban.
2012. jún. 15. 13:02

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!