- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Dreame Pilot - Álomhaj, ó!
- Xiaomi 17 Ultra - jó az optikája
- Samsung Galaxy S24+ - a személyi asszisztens
- Hivatalos a OnePlus 13 startdátuma
- Fotók, videók mobillal
- Samsung Galaxy S25 FE - fenséges, felejthető vagy felesleges?
- Brutális akkumulátort kaphat a Honor X80 GT
- iPhone topik
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
Na, közben rohangásztam, meg kajáltam, de végül sikerült megírni, jól telepakoltam neked kommentekkel, hogy értsd, mit miért csináltam.

#include <stdio.h>
#include <math.h> /* gyökvonás miatt */
#include <ctype.h> /* isdigit() miatt */
#include <stdlib.h> /* atoi miatt */
int prime_or_not(int number); /* deklaráljuk, hogy van ilyen fv.-ünk. Most nem a feladatban meghatározott legrosszabb algoritmust fogom használni. */
int main(int argc, char *argv[])
{
int min, max, temp;
if(argc<3){
/* hibaüzenetek, kilépés hibával */
fputs("Tul keves a parameter!\n", stderr);
return -1;
}
if( isdigit(*argv[1]) )
min = atoi(argv[1]);
else{
fputs("Az elso parameter nem szam!\n", stderr);
return -1;
}
if( isdigit(*argv[2]) )
max = atoi(argv[2]);
else{
fputs("A masodik parameter nem szam!\n", stderr);
return -1;
}
if(min>max){ /* ezt egy fv.-be is lehetne írni [swap(min,max);], most nem tököltem vele */
temp=min; /* átmenetileg eltároljuk min értékét, aztán átadjuk max-nak */
min=max;
max=temp;
}
printf("A %d es %d kozotti primszamok:\n",min,max);
/* jöhet a prímtesztelés, prímek kiírása */
for(;min<=max;++min)
if(prime_or_not(min))
printf("%d\n",min);
return 0; /* VÉGE */
}
/***** Prímtesztelő függvény *****/
int prime_or_not(int number){
int i, divider, max;
if(number==0 || number==1) return 0; /* ezek nem prímek! */
max=(int)(sqrt(number)+1); /* "Csak a p≤(négyzetgyök n) -ig szükséges próbálkozni." lásd pl. Wikipédia. Itt: cast-olás. */
for(divider=1,i=2;(i<max && divider<2);++i)
/* divider<2-nek az az oka, hogy meghatároztuk a max-ot, és az semmiképp nem érheti el magát a számot, így jelen esetben önmaga nem lesz osztója (mint a szabály szerint), így a divider 2-re se mehet fel a prímeknél sem */
{
if(number%i==0) /* ha maradék nélkül megvan a számban az i aktuális értéke */
divider=i;
}
if(divider>1) return 0; /* nem prím */
return 1; /*egyébként prím */
} -
Sk8erPeter
nagyúr
Láttad a korábbi hsz.-emet?
Mert amit ide leírtál, az alapján tényleg nem vágod, mire való az argc, argv, pedig azt hittem, egyértelműen leírtam (leírtuk).
De nem is látom az eredeti feladatspecifikációdban, hogy egyáltalán szükség lenne file-kezelésre, file-ba írásra.
Na, de most gyakorlásképp mindjárt megcsinálom neked kompletten a feladatot.
-
Gyuri16
senior tag
egyaltalan nem ertem mit csinaltal. az eleje (majdnem) jo, igy kellene kineznie:
if (argc < 3) {
/* keves parametert adtal meg, irass ki valami hibauzenetet,
es hogy hogyan kell hasznalni a programodat,
aztan lepj ki hibakoddal */
}
min = atoi(argv[1]);
max = atoi(argv[2]);
ekkor a ket parameter amit a programod utan irtal futtataskor a min es max valtozokban lesz. tovabb nincs miert foglalkoznod az argv-vel. a feladatod szerint igy kellene folytatni:
if (min>max) {
/* csere: min <--> max */
}
int i;
for (i=min; i<=max; i++) {
// vegignezzuk az osszes szamot min es max kozott
/* ha i primszam akkor kiirod ahova kell */
}ott ahol /* kommentar */ van, kell irni meg par sornyi kodot
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- GL.iNet Flint 2 (GL-MT6000) router
- ASUS blog: 2K-tól a 4K-ig és tovább a Radeon RX 9000-es szériával
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Milyen egeret válasszak?
- exHWSW - Értünk mindenhez IS
- Anglia - élmények, tapasztalatok
- Wise (ex-TransferWise)
- További aktív témák...
- Manli RTX 3070 8GB LHR / Csavarmatricás / Beszámítás OK! / Akciós ár!
- Apple Watch 4 44mm szürke színben. 74% akkumulátor.
- Canon EF-S 24mm f/2.8 STM objektív
- Dell Inspiron 16 Plus 7640 Ultra 7 / RTX 4060 16gb DDR5 1TB SSD/2.5K 120Hz Garancia
- Canon 60D fényképezőgép + 50mm objektív + 16GB memóriakártya
- Apple iPhone 13 / 256GB / Kártyafüggetlen / 12Hó Garancia / Akku: 100%
- 264 - Lenovo ThinkBook 16 (G7 ARP) - AMD Ryzen 5 7535HS, no GPU
- 0perces DDR5 5600 vadiúj Ramaxel 2x16GB memória 1 év garancia
- ÚRIS10!!! RAMÁRON! LEGION 5 i7-13650HX 32GB RAM 1000GB SSD RTX 5070 8GB
- Szerver / szerverterem / szerver infrastruktúra felvásárlás, 1-1db is, kiszállással, logisztikával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



