Háziban vki tud segíteni?
A program a bemenetére először kap egy darabszámot, ami megmondja hogy mennyi számmal kell dolgoznia (tudjuk hogy legfeljebb 50). Ezután a bemenetre kap ennyi darab egész számot. (A darabszám és a többi szám között a láthatóság kedvéért van egy üres sor, de ez a bekérést nem zavarja). A program kimenete egy darab szám legyen: ha az összes lehetséges módon kiválasztunk 4 különböző számot a beolvasottak közül, hány olyan számnégyes lesz, ahol a legnagyobb és a legkisebb szám összege megegyezik a másik kettő szám összegével. Fontos: csak különböző számokból álló számnégyeseket vizsgálunk. A bemeneten szerepelhet egy érték többször is. Figyelj arra, hogy ha a beolvasott érték szerepelt már korábban, akkor ne mentsd el a tömbbe, hanem ugord át. A bemenet elején lévő darabszám a kapott számok mennyiségét mondja meg, de az egyezések miatt lehet hogy végül a tömbben kevesebb elem lesz. Példa: A 34,56,23, és 45 számok megfelelő számnégyes alkotnak, hiszen a legkisebb és legnagyobb (23 és 56) összege ugyanannyi, mint a másik kettő (34 és 45) összege (mindkettő 79).
Én eddig jutottam vele:
#include <stdio.h>
#include <stdlib.h>
int main(){
unsigned int darabszam;
scanf("%u",&darabszam);
unsigned int i,j,l,k;
int e=0;
unsigned int *arr=malloc(sizeof(unsigned int)*darabszam);
for (i=0;i<darabszam;i++)
scanf("%u",&arr[i]);
for (i=1; i<darabszam-3; i++)
for (j=i+1; j<darabszam-2; j++)
for (l=j+1; l<darabszam-1; l++)
for (k=l+1; k<darabszam; k++)
if ((arr[l]+arr[j])==(arr[i]+arr[k]))
if (arr[i]>arr[j] && arr[i]>arr[l] && arr[i]>arr[k])
if (arr[k]<arr[l] && arr[k]<arr[j] && arr[k]<arr[i])
e++;
printf("%d\n",e);
return 0;
}
Te lehetsz az első, aki segít a kérdezőnek!
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!