Kezdőoldal » Számítástechnika » Programozás » Grafikus feladat C-ben?

Grafikus feladat C-ben?

Figyelt kérdés

A feladat: Egy versenyben 7 énekes: Aliz, Béla, Cecil, Dalma, Elemér, Ferenc és Georgina maradt a végső döntőre. A döntőben elhangzott dalokat a nézők SMS-szavazatai alapján rangsorolták. Az SMS-ben a szimpatikus énekes nevének kezdőbetűjét kellett beküldeni. A rangsoroláshoz készítse el a következő programot: A program billentyűzetről egy ciklusban bekéri a 125432 beérkezett SMS-ben található nagybetűket és gyűjti a darabszámokat egy 7 elemű vektorba. Majd meghatározza az első három helyezettre érkezett szavazatok számát és ábrázolja a darabszámokat egy oszlopdiagrammal.

Elég kezdő vagyok és eddig ennyit sikerült összehozni, de ez sem működőképes:

#include<stdio.h>

#define N 125432


typedef struct

{

char nev[7];


}ADATTIP;


int main()

{

ADATTIP szav[N];

int i;

int a,b,c,d,e,f,g=0;

printf("Add meg a szavazatokat (A,B,C,D,E,F,G)\n");

for(i=0;i<N;i++){

fflush(stdin);

printf("%d. szavazat ",i+1);

scanf("%s",&szav[i].nev);

}

printf("\nA szavazatok\n");

for(i=0;i<N;i++){

printf("%s ",szav[i].nev);

}

switch(szav[i].nev)

{

case A: a++; break;

case B: b++; break;

case C: c++; break;

case D: d++; break;

case E: e++; break;

case F: f++; break;

case G: g++;

}

printf("\nA %d, B %d, C %d, E %d, F %d, G %d szavazatot kapott\n",a,b,c,d,e,f,g);

return 0;

}

Tudnátok segíteni, hogy hogyan kellene megszámolni a szavazatokat aztán sorbarendezni és az első hármat kiválasztani? Előre is köszönöm a segítséget!



2019. márc. 18. 19:24
1 2
 1/12 anonim ***** válasza:

Szerintem - legalább a tesztelés idejére míg kiteszteled jó -e a program - olvasd be fájlból a karaktereket, mert kézzel sok idő lesz bepötyögni...

Egy programmal generáld le a karaktereket tartalmazó fájlt.

Ha majd működik, alakítsd vissza aztán írja be billentyűzetről aki akarja :D

2019. márc. 18. 20:00
Hasznos számodra ez a válasz?
 2/12 A kérdező kommentje:
Igen úgy csinálom, csak ide írtam így ki :D De egyenlőre le se fut.
2019. márc. 18. 20:18
 3/12 anonim ***** válasza:
100%

int a,b,c,d,e,f,g=0;


ez így mindenképp hibás, a g az 0 lesz, az összes többi az memóriaszemét, azaz lehet például 8583456543 is.

amit akarsz, az int a=0, b=0, c=0...

2019. márc. 18. 22:15
Hasznos számodra ez a válasz?
 4/12 A kérdező kommentje:
Igen oda = jeleket akartam rakni azt beneztem, de javitottam köszi. De a switch-el még mindíg van valami problémája, nem tudom hogyan lehene megszámolni a szavazatokat.
2019. márc. 18. 22:38
 5/12 anonim ***** válasza:
gondolom az A, B, C, D, E, F, G a case-ekbe nem változók. Tedd aposztrófok közé.
2019. márc. 19. 07:35
Hasznos számodra ez a válasz?
 6/12 A kérdező kommentje:
Nem azok, azokat kellene megszámolni, hogy mennyi van belőlük. Már próbáltam aposztrófba is tenni, de mindig azt írja ki, hogy: switch quantity not an integer.
2019. márc. 19. 13:58
 7/12 anonim ***** válasza:
100%

szav[i].nev ez van a switchben. Ez egy 7elemű tömb.

Hogy akarsz te switchelni egy tömbre?

2019. márc. 19. 14:31
Hasznos számodra ez a válasz?
 8/12 anonim ***** válasza:
100%

scanf("%s",&szav[i].nev);

ez is rossz: a szav[i].nev önmagában (tömb lévén) egy memóriacím, így nem kell elé az & jel

helyesebben:

scanf("%s",szav[i].nev);

2019. márc. 19. 15:19
Hasznos számodra ez a válasz?
 9/12 A kérdező kommentje:

Akkor hogyan lehetne megoldani, hogy megszámolja a szavazatokat?

Azt pedig a tanár is így tanította, hogy kell elé az & jel.

2019. márc. 19. 16:21
 10/12 anonim ***** válasza:

Változó esetén kell az & jel, de neked tömb van.

Ajánlom neked az alábbi oldalt: [link]

Olvasd végig az összes előadás-diasort, és közben/utána ess neki a feladatnak. Ha utána sem boldogulsz, 5 perc alatt megírom neked, de abból nem tanulsz annyit, mint ha próbálkoznál.

2019. márc. 19. 21:29
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!