Kezdőoldal » Számítástechnika » Programozás » Írj programot, mely beolvas...

Írj programot, mely beolvas három egész számot, majd kiírja, hogy hány páros közülük. Van egy megoldási kísérletem amit találtam bár az C++ nyelvben van megadva de azért le írom. Erre kéne a C nyelv változatú ha esetleg át lehet írni ezt?

Figyelt kérdés

#include <bits/stdc++.h>

using namespace std;


int getPairsCount(int arr[], int n, int sum)

{

int count = 0; // Initialize result



for (int i=0; i<n; i++)

for (int j=i+1; j<n; j++)

if (arr[i]+arr[j] == sum)

count++;


return count;

}



int main()

{

int arr[] = {8, 10, 7, -1, 5} ;

int n = sizeof(arr)/sizeof(arr[0]);

int sum = 5;

cout << "Páros számok összesen "

<< getPairsCount(arr, n, sum);

return 0;

}



2020. nov. 15. 21:36
 1/4 jokyman15 ***** válasza:
61%

Ha ez a program úgy működik ahogy gondolom akkor ez XD XD XD, jó mindegy.


Csinálsz egy tömböt, abba bekéred a 3 számot ciklusban(for ciklus). Ha megvan kell egy változó amit 0-ról növelsz minden páros szám esetén. Ezt akár már a bekéréskor is ellenőrizheted, egy if(szam[0] % 2 == 0){counter = counter + 1}.

Hogy könnyebben megérsd:


Régen használtam sima C-t, ezért csak vázlatosan írom le.


#1 Létrehozod a tömböt

#2 Létrehozod a változót

#3 Elindítod a for ciklust

#3.1 Bekéred a számot

#3.2 Ellenőrzöd az if utasítással

#3.2.1 Ha páros, akkor növeled a változót

#3.3 Lezárul a for ciklus

#4 Kiiratod a változó értékét

2020. nov. 15. 22:04
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:

1. Ne csináltasd meg mással a házi feladatodat, mert abból nem tanulsz.

2. Ilyen egyszerű feladatoknál ne "találj" megoldási kísérleteket, hanem saját kútfőből próbáld meg megoldani.


Szóval valami ilyen algoritmus mentén:

* létrehozol egy 3 egészet tároló tömböt

* a felhasználótól bekéred a számokat és eltárolod őket a tömbben

* létrehozol egy egész típusú változót - számlálót - melynek kezdetben 0 értéket adsz

* végigmész a tömbön - ha a tömb aktuális elemének 2-vel képzett osztási maradéka 0, akkor növeled a számláló változó értékét eggyel

* a cikluson kívül kiírod a számláló értékét - vagyis a páros számok számát


3. A "talált megoldási kísérlet" teljesen hibás:

* nem olvas be három egész számot (scanf vagy C++-ban cin)

* nem dönti el róluk, hogy párosak (vagyis hogy a kettővel képezett osztási maradékuk megegyezik-e 0-val: szam % 2 == 0)

* nem számolja őket össze

2020. nov. 15. 22:13
Hasznos számodra ez a válasz?
 3/4 jokyman15 ***** válasza:

Az #1 vagyok. A #2-nak írom:


Amúgy igazad van. Egy ilyen feladat pl egyetemen a legelső félévben az első feladatok között volt. Aki ezen elhasalt azt többet már nem is láttam a kövi félévben.


A kérdezőnek:

Ha ez nem megy és képes voltál feltenni gyakorikérdéseken, akkor vagy ájl neki jobban tanulásnak, vagy bele se kezdj a programozásba.

2020. nov. 15. 23:02
Hasznos számodra ez a válasz?
 4/4 tabaki ***** válasza:
100%

Teljesen értelmetlen, amit művelsz az utóbbi napokban, nem is tudom, hogyan képzeled: Minden feladatot megcsináltatsz mással, bebiflázod a válaszokat, és tudni fogod a tananyagot? Aztán, ha nem három szám lesz a zéhán, hanem kettő vagy öt, akkor csak meredsz kínban a monitorra, hogy be lettél csapva?

Ez a feladat egyszerűen – mondhatni szégyenletesen egyszerűen – összerakható olyan elemekből, amelyeket az előzőkből elvileg már töviről-hegyire ismerned kéne. Hangsúlyozottan ellenjavallva, de teljesen ötlet nélkül például így:


#include <stdio.h>


int main() {

printf("Írd be a három számot, szóközökkel elválasztva: ");

int a, b, c;

scanf("%d,%d%d", &a, &b, &c);

int paros = 0;

if (a % 2 == 0) paros++;

if (b % 2 == 0) paros++;

if (c % 2 == 0) paros++;

printf("A három számból %d páros.\n", paros);

return 0;

}


Az eddigi tevékenységed alapján ítélve, te ezen a ponton dőlsz hátra elégedetten: Megvan a működőképes programod, ki van pipálva, immár gáncs nem érhet... Hát, ebből pont nem fogsz tanulni semmit. Igenis, ne örülj a könnyű sikernek, ez egy pocsék kód, ami kizárólag arra motiválhat, hogy azonnal fúrni-faragni kezdjél rajta. Egyfelől, mert a programozásnak nem mások módszereinek lajstromozása, hanem a gondolkodás a lényege, az értelme és az öröme. Másfelől, hátha találsz valami általánosabb, más esetben is használható, de legalábbis biztonságosabb, mutatósabb vagy viccesebb megoldást. „Harmadfelől” pedig: Minél többet ügyeskedel vele, annál inkább támadnak majd olyan ötleteid, amelyekhez fel tudod használni a más feladatokban megismert fogásokat, illetve amelyeket majd a későbbi feladatokban is hasznosíthatsz, és legfőképpen, lehetőséget adnak arra, hogy mindig újabb és újabb dolgokat tanulj, mégpedig ugyanannak a teljesen érdektelen feladványnak az ürügyén. Igen, ez viszonylag hosszadalmas szórakozás, és közben könnyen belesodródsz olyasféle kalandokba, amelyeknek semmi közük az eredeti kérdéshez. Csak éppen ennek haszna is lesz, mert termékenyebbé és hajlékonyabbá formálja a gondolkodásodat – szemben azzal, amikor úgy akarsz időt nyerni, hogy a másoktól kapott „megoldásokat” betarisznyázod, aztán ugyanolyan bután és tapasztalatlanul ütközöl bele a következő feladatba.

2020. nov. 16. 13:32
Hasznos számodra ez a válasz?

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!