Új hozzászólás Aktív témák
-
DEV_NULL
őstag
Sziasztok!
A problémám amire tőletek várnék megoldást; a feladat egy C program ami először bekér egy számot, majd bekér ennyi de maximum 50 számot. Ezeket megszűri, hogy ne legyen benne ismétlődés, majd olyan ismétlődés nélküli számnégyeseket csinál belőlük ahol az első és utolsó szám összege megegyezik a második és harmadik szám összegével és a végén ezek darabszámát. Ezt egy robot ellenőrzi. Két gond van, az egyik, hogy malloc hibával elszáll, vagy ha program kimenete több ezer megfelelő számnégyes, akkor még néhány száz darab nullás számnégyest kipörget a végére... Én már kezdem feladni, bízom benne, tudtok segíteni. Remélem sikerül normálisan bemásolni a kódot, most írok ide először...
Hiba: prog: malloc.c:2401: sysmalloc: Assertion `(old_top == initial_top (av) && old_size == 0) || ((unsigned long) (old_size) >= MINSIZE && prev_inuse (old_top) && ((unsigned long) old_end & (pagesize - 1)) == 0)' failed. Aborted (core dumped)
Köszi előre is!
#include <stdio.h>
#include <stdlib.h>
typedef struct dec10Hazi
{
unsigned int meret, meret2;
unsigned int csere, csere2;
unsigned int *cim, *cim2;
unsigned int tomb[4];
unsigned int db;
} Nehez;
int main()
{
Nehez hazi;
unsigned int h, a, z, i;
scanf("%u", &hazi.meret);
hazi.cim=malloc(sizeof(unsigned int)*hazi.meret);
for(h=0; h<hazi.meret; h++)
{
scanf("%u", &hazi.cim[h]);
}
hazi.csere2=1;
while(hazi.csere2)
{
for(h=0; h<hazi.meret-1; h++)
{
if(hazi.cim[h]>hazi.cim[h+1])
{
hazi.csere=hazi.cim[h];
hazi.cim[h]=hazi.cim[h+1];
hazi.cim[h+1]=hazi.csere;
}
}
hazi.csere2=0;
for(h=0; h<hazi.meret-1; h++)
{
if(hazi.cim[h]>hazi.cim[h+1])
{
hazi.csere2=1;
break;
}
}
}
hazi.meret2=0;
for(h=0; h<hazi.meret-1; h++)
{
if(hazi.cim[h]<hazi.cim[h+1])
{
hazi.meret2++;
}
}
hazi.meret2++;
hazi.cim2=malloc(sizeof(unsigned int)*hazi.meret2);
h=0;
hazi.csere=0;
hazi.cim2[hazi.csere]=hazi.cim[h];
h++;
while(hazi.csere<hazi.meret2)
{
if(hazi.cim[h]>hazi.cim2[hazi.csere])
{
hazi.cim2[++hazi.csere]=hazi.cim[h];
h++;
}
else
{
h++;
}
}
hazi.db=0;
for(h=0; h<hazi.meret-3; h++)
{
hazi.tomb[0]=hazi.cim2[h];
for(a=h+1; a<hazi.meret-2; a++)
{
hazi.tomb[1]=hazi.cim2[a];
for(z=a+1; z<hazi.meret-1; z++)
{
hazi.tomb[2]=hazi.cim2[z];
for(i=z+1; i<hazi.meret; i++)
{
hazi.tomb[3]=hazi.cim2[i];
if(hazi.tomb[0]+hazi.tomb[3]==hazi.tomb[1]+hazi.tomb[2])
{
hazi.db++;
}
}
}
}
}
printf("%u\n", hazi.db);
free(hazi.cim);
free(hazi.cim2);
return 0;
}
[ Szerkesztve ]
-
DEV_NULL
őstag
válasz kovisoft #5995 üzenetére
Köszi a segítséget!
Mivel sehogy sem akart működni egy teljesen új, sokkal egyszerűbb megközelítésből oldottam meg végül:
#include <stdio.h>
typedef struct
{
unsigned int tomb[50];
unsigned int szam, db;
unsigned int meret, meret2;
} Nehez;
Nehez meret()
{
Nehez hazi;
hazi.meret2=0;
hazi.db=0;
scanf("%u", &hazi.meret);
return hazi;
}
Nehez beker()
{
Nehez hazi;
unsigned int h, a;
for(h=0; h<hazi.meret; h++)
{
scanf("%u", &hazi.szam);
a=0;
while(a<h && hazi.szam!=hazi.tomb[a])
{
a++;
}
if(a==h)
{
hazi.tomb[hazi.meret2]=hazi.szam;
hazi.meret2++;
}
}
return hazi;
}
Nehez rendez(Nehez hazi)
{
unsigned int h, a;
for(h=0; h<hazi.meret2; h++)
{
for(a=h+1; a<hazi.meret2; a++)
{
if(hazi.tomb[h]>hazi.tomb[a])
{
hazi.szam=hazi.tomb[a];
hazi.tomb[a]=hazi.tomb[h];
hazi.tomb[h]=hazi.szam;
}
}
}
return hazi;
}
Nehez szamol(Nehez hazi)
{
unsigned int h, a, z, i;
for(h=0; h<hazi.meret2; h++)
{
for(a=h+1; a<hazi.meret2; a++)
{
for(z=a+1; z<hazi.meret2; z++)
{
for(i=z+1; i<hazi.meret2; i++)
{
if(hazi.tomb[h]+hazi.tomb[i]==hazi.tomb[a]+hazi.tomb[z])
{
hazi.db++;
}
}
}
}
}
return hazi;
}
void kiir(Nehez hazi)
{
printf("%u", hazi.db);
}
int main()
{
Nehez hazi;
hazi=meret();
hazi=beker();
hazi=rendez(hazi);
hazi=szamol(hazi);
kiir(hazi);
return 0;
}
Ú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!
- Mozilla Firefox
- Call of Duty: Modern Warfare III (2023)
- Fűnyíró topik
- Samsung Galaxy Note20 Ultra - a tollnak nincs ellenfele
- Gyúrósok ide!
- MILC felhasználók szakmai topikja
- BMW topik
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Samsung Galaxy S23 Ultra - non plus ultra
- World of Tanks - MMO
- További aktív témák...
- HP d4 magos intel pc
- XFX AMD Radeon HD 6870 DD 1GB DDR5 Dual DP HDMI PCI-E videokártya
- HP EliteBook 830 G7 i7-10510U 16GB RAM 512GB SSD világító MAGYAR billentyűzet
- ASUS GeForce GTX 660 DirectCU II OC 2GB GDDR5 192bit lVideokártya
- IPHONE SZERVÍZ BAZÁR! SZERVÍZ ESZKÖZÖK, SZERSZÁMOK! FÓLIAVÁGÓGÉPEK REMEK ÁRON!
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen