Moro
Tehtävänä on tehdä ohjelma, johon syötetään ensin joka päivälle 5 lukua ja tämä tehdään 7 kertaa. Annetut luvut pitäisi sitten saada tulostettua taulukkoon (8x6) siten, että pysty ja vaakarivit lasketaan yhteen ja tulostetaan taulukkoon viimeiseksi riveille ja sarakkeisiin. Olen todellakin aivan "nyyppä"ohjelmoija, enkä useamman päivän yrittämisellä ole saanut oikein mitään aikaan. Suurimpana ongelmana tuntuu olevan tuo yhteenlaskeminen ja sen tulostaminen samaan taulukkoon. Osaisiko kukaan hiukan jelppiä ettei tässä jouluun asti menisi.
Tehtävänä on tehdä ohjelma, johon syötetään ensin joka päivälle 5 lukua ja tämä tehdään 7 kertaa. Annetut luvut pitäisi sitten saada tulostettua taulukkoon (8x6) siten, että pysty ja vaakarivit lasketaan yhteen ja tulostetaan taulukkoon viimeiseksi riveille ja sarakkeisiin. Olen todellakin aivan "nyyppä"ohjelmoija, enkä useamman päivän yrittämisellä ole saanut oikein mitään aikaan. Suurimpana ongelmana tuntuu olevan tuo yhteenlaskeminen ja sen tulostaminen samaan taulukkoon. Osaisiko kukaan hiukan jelppiä ettei tässä jouluun asti menisi.
Vastaukset 10
Vanhimmat
http//www.joutsi.com
Katsotaan löytätkö apua.
Niin jäi mainitsematta että ohjelmoin perus C:llä. Näyttäis olevan C painotteista tuo info tuossa linkissä, mutta kiitos siitäkin
#include
#include
int main()
{
int Luvut[8][6]={0};
int x=0, y=0;
while(y < 5)
{
while(x < 7)
{
system("CLS");
printf("(%i,%i): ", x, y);
scanf("%i", &Luvut[x][y]);
x++;
}
y++;
x=0;
}
x=0;
y=0;
while(y < 5)
{
while(x < 7)
{
Luvut[7][y]+=Luvut[x][y];
Luvut[x][5]+=Luvut[x][y];
x++;
}
y++;
x=0;
}
x=0;
y=0;
while(y < 5)
{
Luvut[7][5]+=Luvut[7][y];
y++;
}
x=0;
y=0;
while(y < 6)
{
printf("\n|");
while(x < 8)
{
printf("%i|", Luvut[x][y]);
x++;
}
y++;
x=0;
}
printf("\n\n");
system("pause");
return 0;
}
Kiitos avusta, ihan hyvin rullaa vaikkakin pientä hienosäätöä vaatii kun pitää vielä aakkostarkistus rakentaa, eli ettei tilttaa kun syöttää aakkosen..
Lisäksi yritän koodata otsikot noihin riveihin ja sarakkeisiin, mutta sen ei luulisi iso homma olevan, danke!
se johtuu tuosta scanf("%i", &Luvut[x][y]); koska se hyväksyy vain lukuja
sen voi kiertää näin
laita alkuun: char buf[128];
ja siitten tuon scanf("%i", &Luvut[x][y]); korvaat tällä:
gets(buf);
Luvut[x][y]=atoi(buf);
tällöin akkoset käsitellään nollina
Kiitos, mutta eikös tuossa nyt käy sit sillai että kun syöttää aakkosen niin se tallentuu nollaksi taulukkoon. Tarkoitus olisi, että jos syöttää akkosen niin ohjelma ei hyväksy sitä vaan kysyy uudestaan numeroa. On tää ohjelmointi hankalaa, ainakin näin aluksi..
lisää ton: Luvut[x][y]=atoi(buf);
jälkeen tämmöinen:
if(Luvut[x][y]==0 && buf[0] != '0'){ continue; }
tässäkin on se heikkous jos syöttää vaikka "0A" niin se päästää sen nollana läpi
Kiitos taas.. Hyvin toimii tuo aakkossuodatus, varsinkin kun lisäsin hiukan pelivaraa siihen buffiin! Viimeisenä ongelmana onkin se, että taulukkoon tulisi saada otsikot sekä pysty että vaaka-akseleille. Miten tämä voisi onnistua, voiko esim. taulukon alustusvaiheessa antaa ensimmäisille arvoille esim. asetusarvon 1.Pelaaja tms.. ja sitten muuttaa ohjelmaa niin että täyttäminen alkaa seuraavasta kohdasta, vai miten tämän voisi tehdä helpoiten?
Nuo vaakaakselesiden otsikot on ihan helppo toteuttaa, mutta noita pysty akseleiden otsikoiden piirtäminen on hieman vaikea toteuttaa tuossa konsolissa.
jos mahdollista niin joku taulukko laskenta ohjelma olisi viisaampi tapa toteuttaa tämmöiset jutut
tässä on nyt jonkin sortin systeemi noita vaaka otsikoita varten.
#include
#include
#include
int main()
{
int Luvut[8][6]={0};
char buf[128];
char Yotsikot[6][128]={'\0'};
int pituudet[6]={0};
int pisin=0;
int x=0, y=0;
while(y < 6)
{
system("CLS");
printf("Yotsikko[%i]:", y);
gets(Yotsikot[y]);
while(Yotsikot[y][pituudet[y]]!='\0' && pituudet[y] < 128){ pituudet[y]++; }
if(pituudet[y]>pisin){ pisin = pituudet[y]; }
y++;
}
x=0;
y=0;
while(y < 5)
{
while(x < 7)
{
system("CLS");
printf("(%i,%i): ", x, y);
gets(buf);
Luvut[x][y]=atoi(buf);
if(Luvut[x][y]==0 && buf[0] != '0'){ continue; }
x++;
}
y++;
x=0;
}
x=0;
y=0;
while(y < 5)
{
while(x < 7)
{
Luvut[7][y]+=Luvut[x][y];
Luvut[x][5]+=Luvut[x][y];
x++;
}
y++;
x=0;
}
x=0;
y=0;
while(y < 5)
{
Luvut[7][5]+=Luvut[7][y];
y++;
}
x=0;
y=0;
while(y < 6)
{
printf("\n%s", Yotsikot[y]);
while(pituudet[y]
mikä siis on ongelmana? olet saanut tallennettua käyttäjän syötteen johonkini [7][5] -kokoseen taulukkoon, vai?
mitä tarkoitat että luvut pitäisi saada tulostettua taulukkoon, siis meinaatko että pitäisi näytölle "piirtää" joku taulu ja siihen sitten lukuja vai mitä häh?
tässä pieni esimerkki jolla voi laskea koko taulukon yhteen, soveltamalla tuota saat tehtyä halumasi jutut. (tai sitten et)
int summa = 0;
for(int a = 0; a < 7; a )
{
for(int b = 0; b < 5; b )
{
summa = taulukko[a][b];
}
}