|
Kitűzött feladatok
1. Hozzunk létre egy egydimenziós
tömböt, ahol a tömb
típusa legyen a következő
struktúrájú:
struct diak{
char nev[20];
char tel[6];
float jegy;
};
majd végezzük el a következőket:
- olvassuk ki egy szövegállományból
az adatokat, majd írassuk ki táblázatos
formában, ABC sorrendben a
beolvasott adatokat ( Forráskód
)
- írassuk ki egy adott személy adatait
- határozzuk meg a diákok
átlagjegyét
- írassuk ki az összes olyan diákot,
akiknek
maximális jegye van
- rendezzük a diákokat, jegyek
alapján csökkenő
sorrendbe
2. Hozzunk létre egy egydimenziós
tömböt, ahol a tömb
típusa legyen a
következő struktúrájú:
struct auto{
char marka[20];
char kod[6];
char megye[3];
int ar;
};
majd végezzük el a következőket
- olvassuk ki egy
szövegállományból az adatokat,
majd írassuk ki táblázatos formában, ABC
sorrendben (a márka alapján) a
beolvasott adatokat
- írassuk ki a maros megyei autók adatait
- határozzuk meg egy adott
értéknél olcsóbb autók
adatait
- határozzuk, meg hogy hány autó
van nyilvántartva
3. Egy
szövegállomány minden egyes sora egy
vezetéknevet, egy keresztnevet, egy dátumot (év,
hónap, nap) tartalmaz. Olvassuk ki
ezeket az adatokat egy struct
típusú tömbbe
és határozzuk meg minden
esetben, hogy az adott
személy :
a. az év hányadik napján
született,
b. a hét melyik napján
született (vasárnap, hétfő, stb...),
c. mikor van a névnapja, melyhez
használjuk ezt az
állományt.
Pl:
Varga Katalin 2004 4 16 -> 76, Kedd, November 25
Székely János 2000 9 7 -> 251,
Csütörtök, December 27
Megjegyzés:
Egy év akkor szökőév, ha osztható
4-gyel és nem osztható
100-zal. Ha
viszont 400-zal osztható, akkor mindenképpen
szökőév.
Feladat 1.
(forráskód)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct diak{
char nev[40];
char tel[10];
float jegy;
};
typedef struct diak DIAK;
int hasonlit(const void *a1, const void *a2);
void kiir(DIAK* A, int n);
int main()
{
DIAK *d;
int i,n;
FILE * input;
input = fopen ("adatok.txt", "r");
fscanf (input, "%i", &n);
d = (DIAK*) malloc( n*sizeof(DIAK) );
for( i = 0; i < n; i++)
{
fscanf(input, "%s", d[i].nev);
fscanf(input, "%s", d[i].tel);
fscanf(input, "%f",
&d[i].jegy);
}
fclose (input);
printf ("Rendezetlenul:\n");
kiir (d, n);
qsort (d, n,
sizeof(DIAK), hasonlit);
printf ("Rendezve:\n");
kiir (d, n);
free (d);
return 1;
}
void kiir(DIAK* A,int n){
int i;
printf("%10s","nev");
printf("%15s","tel");
printf("%20s\n","jegy");
for( i=0; i<n; i++)
{
printf("%15s", A[i].nev);
printf("%15s", A[i].tel);
printf("%15.2f\n", A[i].jegy);
}
}
int hasonlit(const void *a1, const void *a2)
{
DIAK fa1,fa2;
fa1 = *((DIAK*)a1);
fa2 = *((DIAK*)a2);
return strcmp(fa1.nev,fa2.nev);
}
|