Új hozzászólás Aktív témák
-
Karma
félisten
A hiba ott kezdődik, hogy nem használtad a Programkód gombot a forrás beszúrásakor, és így amellett, hogy nehezen olvasható, a [i]-kből mindenféle sima zárójel és dölt írás lett. Erre figyelj oda legközelebb.
Maga a kód rengeteg sebből vérzik, jelölöm amit ránézésre látok:
scanf("%f", &adat->kapacitas); -- mivel a double érték skalár, a scanf függvénynek a címét kell átadnod, ki kell rakni a & operátort hogy ne robbanjon.
for(i = 0; i < (strlen(tomb)-1); i++) ☠-- strlent nem szabad ilyen tömbre használni, csak és kizárólag nullterminált (azaz C) stringekre! A függvényedet úgy kéne módosítanod, hogy a darabszámot is átadd paraméterként.
printf("%i",tomb[i].kapacitas); -- ha egyszer double az érték, miért egészként akarod kiíratni?
De egyébként például a középsőt a fordító is mondja neked, hiszen lefordíthatatlan; miért nem nézed a hibákat?
Egy kicsit lemaradtam az írással

-
tototos
addikt
Én több hibát is látok. Először is ha egy tömb elemét akarod címezni akkor nem () kell hanem []
Valamint az strlen nem fogja megmondani neked a tömb méretét, csak egy string hosszát. Tömb méretet belekódolod a programba, mivel itt statikus foglalásról van szó teljesen járható út.
Másik hiba hogy az if után ha nem blokkosítod az utasításokat, akkor az összes kapacitást ki fogja írni, mert az if csak a névre lesz hatásra.main fv:
beolvas(&tomb(i)); helyett beolvas(&tomb);nagyobb fv:
void nagyobb(Pendrive *tomb, int size)
{
int i;for(i = 0; i < size; i++)
{
if(tomb(i).kapacitas > 2)
{printf("%s",tomb(i).nev);
printf("%i",tomb(i).kapacitas);
}
}
} -
Ah, bocs, a végét nem olvastam.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n=5;
int a[n];
int b[n];
int c[n];
int i, j, db = 0, ossz = 0;
for(i = 0; i < 3; i++ )
for(j = 0; j < n; j++)
switch(i)
{
case 0:
printf("A vektor elemei:");
scanf("%d",&a[j]);
break;
case 1:
printf("B vektor elemei:");
scanf("%d",&b[j]);
break;
case 2:
printf("C vektor elemei:");
scanf("%d",&c[j]);
break;
}
for(i = 0; i < n; i++)
if(a[i] < c[i] && c[i] < b[i])
{
ossz+=c[i];
db++;
}
printf("%d\n%d", db, ossz);
return 0;
} -
-
Dave-11
tag
Írtam neked egy lehetséges verziót, ha valami nem tiszta kérdezz nyugodtan. Vagy ha valaki úgy gondolja van ennél jobb megoldás, az is szóljon

#include<stdio.h>
void erreVegzodikE(char szoveg[], char betu);
int main()
{
erreVegzodikE("Programozas",'s');
return 0;
}
void erreVegzodikE(char szoveg[], char betu)
{
int hossz = 0;
while(szoveg[hossz]!='\0')
{
hossz++;
}
if(szoveg[hossz-1]==betu)
{
printf("Igen\n");
}
else
{
printf("Nem\n");
}
}
Ú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!
- Honor 400 Lite 256GB, Kártyafüggetlen, 1 Év Garanciával
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7700X 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
- Dobozos ÚJ HP Victus i5-13420H, RTX 3050 (6GB), 144Hz
- HP EliteBook 840 G11 Ultra 7 / 16GB RAM / 512GB SSD / FHD+ IPS / Garancia 2027.11.
- Okosóra felvásárlás!! Samsung Galaxy Watch 5 Pro, Samsung Galaxy Watch 6 Classic
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


