Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- // Ide jön a megoldás
- struct televizio{
- unsigned int ar;
- int gyartas;
- double ertekeles;
- unsigned int szelesseg;
- };
- struct televizio* lefoglal(unsigned int meret){
- struct televizio* tomb = (struct televizio*)malloc(sizeof(struct televizio)*meret);
- return tomb;
- }
- void nemkell(struct televizio* a){
- free(a);
- }
- void beolvas(struct televizio* a){
- scanf("%u %i %lf %u", &a->ar, &a->gyartas, &a->ertekeles, &a->szelesseg);
- }
- void tombotkiir(struct televizio tomb[], int meret){
- for(int i=0;i<meret;i++){
- printf("%u %i %.2lf %u\n", tomb[i].ar, tomb[i].gyartas, tomb[i].ertekeles, tomb[i].szelesseg);
- }
- }
- #define PART2
- int osszeszamol(struct televizio tomb[], int meret, int szam){
- int szamlalo = 0;
- for(int i=0;i<meret;i++){
- if(tomb[i].gyartas > szam){
- szamlalo++;
- }
- }
- return szamlalo;
- }
- #define PART3
- struct televizio* minkeres(struct televizio tomb[], int meret){
- int max=0;
- for(int i=0;i<meret;i++){
- if(tomb[i].gyartas < tomb[max].gyartas)
- max = i;
- }
- return &tomb[max];
- }
- void feladat4(struct televizio tomb[], int meret){
- struct televizio csere;
- for(int j=0;j<meret;j++){
- for(int i=0;i<meret;i++){
- if(tomb[i].szelesseg > tomb[i+1].szelesseg){
- csere = tomb[i];
- tomb[i] = tomb[i+1];
- tomb[i+1] = csere;
- }
- }
- }
- for(int j=0;j<meret;j++){
- for(int i=0;i<meret;i++){
- if(tomb[i].szelesseg == tomb[i+1].szelesseg){
- if(tomb[i].ar > tomb[i+1].ar)
- csere = tomb[i];
- tomb[i] = tomb[i+1];
- tomb[i+1] = csere;
- }
- }
- }
- }
- /*Készíts egy feladat4 függvényt, amely megkap egy televízió tömböt és annak méretét.
- A függvény rendezze a tömb elemeit felbontás szélessége szerint növekvő, sorrendbe.
- Azonosság esetén az legyen előrébb, amelyikben a(z) ár addattag értéke nagyobb.
- Ha az is megegyezik, akkor mindegy (nem lesz olyan).*/
- //itt a vége
- int main()
- {
- printf("\n--START OF PART1--\n");
- unsigned int meret;
- scanf("%u", &meret);
- struct televizio *tomb;
- tomb=lefoglal(meret);
- unsigned int i;
- for (i=0; i<meret; i++)
- {
- beolvas(&tomb[i]);
- }
- tombotkiir(tomb, meret);
- printf("\n--END OF PART1--\n");
- #ifdef PART2
- printf("\n--START OF PART2--\n");
- unsigned int talalatokSzama=osszeszamol(tomb, meret, 1997);
- printf("%u\n", talalatokSzama);
- printf("\n--END OF PART2--\n");
- #endif
- #ifdef PART3
- printf("\n--START OF PART3--\n");
- struct televizio *szelso=minkeres(tomb, meret);
- printf("%u ", szelso->ar);
- printf("%d ", szelso->gyartas);
- printf("%.2lf ", szelso->ertekeles);
- printf("%u\n", szelso->szelesseg);
- printf("\n--END OF PART3--\n");
- #endif
- #ifdef PART4
- printf("\n--START OF PART4--\n");
- // Lemásoljuk, hogy ne az eredetit babráljuk
- struct televizio *tombFeladat4=lefoglal(meret);
- for (i=0; i<meret; i++)
- tombFeladat4[i]=tomb[i];
- // A rendezés
- feladat4(tombFeladat4, meret);
- // A megjelenítés
- tombotkiir(tombFeladat4, meret);
- nemkell(tombFeladat4);
- printf("\n--END OF PART4--\n");
- #endif
- #ifdef PART5
- printf("\n--START OF PART5--\n");
- // Lemásoljuk, hogy ne az eredetit babráljuk
- struct televizio *tombFeladat5=lefoglal(meret);
- for (i=0; i<meret; i++)
- tombFeladat5[i]=tomb[i];
- // Az újrafoglalás
- unsigned int mennyivel;
- scanf("%u", &mennyivel);
- feladat5(&tombFeladat5, &meret, mennyivel);
- // A bekérés
- for (i=meret-mennyivel; i<meret; i++)
- {
- beolvas(&tomb[i]);
- }
- // A megjelenítés
- tombotkiir(tombFeladat5, meret);
- nemkell(tombFeladat5);
- printf("\n--END OF PART5--\n");
- #endif
- printf("\n--START OF PART1--\n");
- nemkell(tomb);
- printf("\n--END OF PART1--\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement