Grafikus feladat C-ben?
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!
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
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...
szav[i].nev ez van a switchben. Ez egy 7elemű tömb.
Hogy akarsz te switchelni egy tömbre?
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);
Akkor hogyan lehetne megoldani, hogy megszámolja a szavazatokat?
Azt pedig a tanár is így tanította, hogy kell elé az & jel.
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.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!