C -ben, hogyan kell:addig olvasson be míg 0-t adok meg, prímszám ellenőrzés, egész szám kerekítés?
A feladat:
írjon programot ami beolvas pozitív egész számokat míg nem adunk meg 0-t. Majd kiírja az átlag értékuket felfele kerekítve egész számra majd kiírja az összes osztóját. Ha prímszám,akkor írja ki hogy ez prím szám
eddig jutottam:
#include<stdio.h>
int main(void){
int c,p,g,i;
p = 0;
i = 0;
while (1){ //itt nem tudom hogy addig folytassa mig 0 at nem adunk meg
printf ("zadaj kladne cislo\n");
scanf ("%d",&c);
p = p + c;
++i; // atlag szamitasnal lessz segitsegul
if (c<0){
printf("\nje to zaporne cislo!\n\n");
}
}
g = p/i;
printf("az atlag ertek: %8.0d",g); // itt nem tudom hogyan kerekitsen a program es folytatni hogy primszamokat es az oszthatosagot kiirja
printf();
}
Pontosítok:Menet közben elegendő az összeget és a beolvasott számok darabszámát tárolni.
"átlagot felesleges float-ban tárolni :)
atlag = osszeg / szam + 1,"
Ez nem igaz pl. osszeg=16 szam=4
atlag-nak helyesen 4-nek kéne lenni e szerint 4+1.
Eltárolod floatba malyd másolod int-be és ha a float nagyobb akkor van törtrész és akkor és csak is akkor kell hozzáadni 1-et ezt fentebb leírtam.
(Szerencsésebb lenne szamdb-nak hívni szam-ot, hogy jobban utlajon hogy mit tárolok benne.)
"megszamoltatom,hogy hanyszor irta ki azt hogy oszthato egy szammal ha 2 vagy kisebb akkor az primszam ilyenkor torolje a konzol ablakot és irja ki h prim szam."
"De valami baja van a CLRSCR vel" Megint a pascal-lal kevered.
Rossz programozási módszertan, semmi szükség törölni a konzolablakról, ne akarj törölni, úgy gondolkozz hogy kiírja majd kiderül hogy még sem kellett volna kiírni. Előre is lehet tudni. Tanuld meg a klasszikus programozási módon használni a konzolalakot, régen papírra nyomtatta ki a gép nem volt monitor, amit egyszer kinyomtatott azt nem lehetett visszacsinálni.
"úgy gondolkozz hogy kiírja majd kiderül hogy még sem kellett volna kiírni"
Bocsi egy szó kimaradt: ne úgy gondolkozz hogy kiírja majd kiderül hogy még sem kellett volna kiírni.
"Ez nem igaz pl. osszeg=16 szam=4
atlag-nak helyesen 4-nek kéne lenni e szerint 4+1."
Azt hiszem később leírtam, hogy a +1 akkor kell, ha nem osztható a két szám. C-ben, ha windows-ra írod a programot, akkor törölni system("cls"); el lehet. De valóban hallgass inkább az előzőre, az úgy nem túl elegáns, hogy írogatsz, aztán meg hoppsz, mégse kellett volna...
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!