Hirdetés
- Fotók, videók mobillal
- Samsung Galaxy A54 - türelemjáték
- Vivo X300 Pro – messzebbre lát, mint ameddig bírja
- Xiaomi 15 - kicsi telefon nagy energiával
- Garmin Fenix 8 Pro - nézz az ég felé!
- Milyen okostelefont vegyek?
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- iPhone topik
- Apple iPhone 17 Pro Max – fennsík
- MIUI / HyperOS topik
Új hozzászólás Aktív témák
-
Pcmagicnet
csendes tag
Üdv mindenkinek!
C-ben kellene egy hisztogramos kiírást csinálnom, amihez egy kis segítség kellene. A lényeg az lenne hogy ki kéne nyomtatni, a bemenetre adott szavak hosszának hisztogramját.
Csináltam egy progit, elég hosszú de azért bemásolom.
#include <stdio.h>
#define KINN 0
#define BENN 1main()
{
/* deklarálom az összes változót */
int nulla,egy,ketto,harom,negy,ot,hat,het,nyolc,kilenc;
int a,b,ce,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;
int c, szam, nw, nc, mas, nl, numc, allapot;
float a2;/* definiálom a változókat */
nulla=egy=ketto=harom=negy=ot=hat=het=nyolc=kilenc = 0;
a=b=ce=d=e=f=g=h=i=j=k=l=m=n=o=p=q=r=s=t=u=v=w=x=y=z = 0;
allapot = KINN;
nw = nc = mas = nl = numc = 0;/* program magja */
while((c = getchar()) != EOF){
++nc;
if(c >= '0' && c <= '9'){
++numc; /* ha szám akkor 1-el növeli a numc értékét */
--nc; /* a numerikus kataktereket kivonom az összes karakterből */
}
if(c == ' ' || c == '\t'){
++mas; /* ha szóköz vagy tab */
}
if(c == '\n'){
++nl; /* ha sortörés */
}
if(c == ' ' || c == '\t' || c == '\n'){
allapot = KINN;
--nc; /* szóköz, tab, sortörés kivonása az összes karakterből */
}
else if( allapot == KINN ){
allapot = BENN;
++nw;
}
/* ha az aktuális karakter 0,1,2,3... vagy a,b,c,d.... stb. növelem
a hozzá tartozó változó értékét 1-el */
if(c == '0')++nulla;
if(c == '1')++egy;
if(c == '2')++ketto;
if(c == '3')++harom;
if(c == '4')++negy;
if(c == '5')++ot;
if(c == '6')++hat;
if(c == '7')++het;
if(c == '8')++nyolc;
if(c == '9')++kilenc;
if(c == 'a' || c == 'A')++a;
if(c == 'b' || c == 'B')++b;
if(c == 'c' || c == 'C')++ce;
if(c == 'd' || c == 'D')++d;
if(c == 'e' || c == 'E')++e;
if(c == 'f' || c == 'F')++f;
if(c == 'g' || c == 'G')++g;
if(c == 'h' || c == 'H')++h;
if(c == 'i' || c == 'I')++i;
if(c == 'j' || c == 'J')++j;
if(c == 'k' || c == 'K')++k;
if(c == 'l' || c == 'L')++l;
if(c == 'm' || c == 'M')++m;
if(c == 'n' || c == 'N')++n;
if(c == 'o' || c == 'O')++o;
if(c == 'p' || c == 'P')++p;
if(c == 'q' || c == 'Q')++q;
if(c == 'r' || c == 'R')++r;
if(c == 's' || c == 'S')++s;
if(c == 't' || c == 'T')++t;
if(c == 'u' || c == 'U')++u;
if(c == 'v' || c == 'V')++v;
if(c == 'w' || c == 'W')++w;
if(c == 'x' || c == 'X')++x;
if(c == 'y' || c == 'Y')++y;
if(c == 'z' || c == 'Z')++z;
}printf("\nKarakterek\na:");
for(szam = 0; szam < a; ++szam){ /* Amennyi az adott karakterhez tartozó változó értéke, */
printf("%s", "*"); /* annyi * -ot íratok ki mellé */
}
printf("(%d)\nb:", a); /* a * sor végére () -jelbe kiíratom a változó értékét,
és a következő sorba kiíratom a következő karaktert */
for(szam = 0; szam < b; ++szam){
printf("%s", "*");
}
printf("(%d)\nc:", b);
for(szam = 0; szam < ce; ++szam){
printf("%s", "*");
}
printf("(%d)\nd:", ce);
for(szam = 0; szam < d; ++szam){
printf("%s", "*");
}
printf("(%d)\ne:", d);
for(szam = 0; szam < e; ++szam){
printf("%s", "*");
}
printf("(%d)\nf:", e);
for(szam = 0; szam < f; ++szam){
printf("%s", "*");
}
printf("(%d)\ng:", f);
for(szam = 0; szam < g; ++szam){
printf("%s", "*");
}
printf("(%d)\nh:", g);
for(szam = 0; szam < h; ++szam){
printf("%s", "*");
}
printf("(%d)\ni:", h);
for(szam = 0; szam < i; ++szam){
printf("%s", "*");
}
printf("(%d)\nj:", i);
for(szam = 0; szam < j; ++szam){
printf("%s", "*");
}
printf("(%d)\nk:", j);
for(szam = 0; szam < k; ++szam){
printf("%s", "*");
}
printf("(%d)\nl:", k);
for(szam = 0; szam < l; ++szam){
printf("%s", "*");
}
printf("(%d)\nm:", l);
for(szam = 0; szam < m; ++szam){
printf("%s", "*");
}
printf("(%d)\nn:", m);
for(szam = 0; szam < n; ++szam){
printf("%s", "*");
}
printf("(%d)\no:", n);
for(szam = 0; szam < o; ++szam){
printf("%s", "*");
}
printf("(%d)\np:", o);
for(szam = 0; szam < p; ++szam){
printf("%s", "*");
}
printf("(%d)\nq:", p);
for(szam = 0; szam < q; ++szam){
printf("%s", "*");
}
printf("(%d)\nr:", q);
for(szam = 0; szam < r; ++szam){
printf("%s", "*");
}
printf("(%d)\ns:", r);
for(szam = 0; szam < s; ++szam){
printf("%s", "*");
}
printf("(%d)\nt:", s);
for(szam = 0; szam < t; ++szam){
printf("%s", "*");
}
printf("(%d)\nu:", t);
for(szam = 0; szam < u; ++szam){
printf("%s", "*");
}
printf("(%d)\nv:", u);
for(szam = 0; szam < v; ++szam){
printf("%s", "*");
}
printf("(%d)\nw:", v);
for(szam = 0; szam < w; ++szam){
printf("%s", "*");
}
printf("(%d)\nx:", w);
for(szam = 0; szam < x; ++szam){
printf("%s", "*");
}
printf("(%d)\ny:", x);
for(szam = 0; szam < y; ++szam){
printf("%s", "*");
}
printf("(%d)\nz:", y);
for(szam = 0; szam < z; ++szam){
printf("%s", "*");
}
printf("(%d)\n0:", z);
for(szam = 0; szam < nulla; ++szam){
printf("%s", "*");
}
printf("(%d)\n1:", nulla);
for(szam = 0; szam < egy; ++szam){
printf("%s", "*");
}
printf("(%d)\n2:", egy);
for(szam = 0; szam < ketto; ++szam){
printf("%s", "*");
}
printf("(%d)\n3:", ketto);
for(szam = 0; szam < harom; ++szam){
printf("%s", "*");
}
printf("(%d)\n4:", harom);
for(szam = 0; szam < negy; ++szam){
printf("%s", "*");
}
printf("(%d)\n5:", negy);
for(szam = 0; szam < ot; ++szam){
printf("%s", "*");
}
printf("(%d)\n6:", ot);
for(szam = 0; szam < hat; ++szam){
printf("%s", "*");
}
printf("(%d)\n7:", hat);
for(szam = 0; szam < het; ++szam){
printf("%s", "*");
}
printf("(%d)\n8:", het);
for(szam = 0; szam < nyolc; ++szam){
printf("%s", "*");
}
printf("(%d)\n9:", nyolc);
for(szam = 0; szam < kilenc; ++szam){
printf("%s", "*");
}
printf("(%d)\n", kilenc);/* Ha pl: 70 karakter széllességben határozzuk meg a 100% -ot */
if(a != 0){a2 = a / 0.7; /* elosztom az 'a' értékét a 70. 1 % -ával. Ennyi % lesz! */
printf("a:");
for(szam=0; szam <= a; ++szam){
if(szam <= 70){
printf("%s", "*" );
}
}if(a2 <= 100.0){
printf("(%1.1f%s)", a2,"%");
}
else{
printf("(100.0%s)", "%");
}
}printf("\nSzavak szama: %d\nKarakterek szama: %d\nMas: %d\nSorok szama: %d\nNumerikus karakterek szama: %d\n", nw, nc, mas, nl, numc );
system("PAUSE");
return 0;
}Elég kezdetleges, de soha nem csináltam még ilyet. Azt sem tudom hogy kellene kinéznie. Ha valaki tud segítsen egy kicsit. Vagy ha van valami példátok szívesen megnézném.
Előre is köszi a segítséget!!!
Ú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!
- Autós topik
- OLED TV topic
- Milyen processzort vegyek?
- Bestbuy játékok
- Melyik tápegységet vegyem?
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Autós kamerák
- World of Tanks - MMO
- Arc Raiders
- További aktív témák...
- Gyors, vékony és könnyű Lenovo Thinkpad X1 Carbon gen 8 (10.gen Core I5 16Gb DDR4 512Gb SSD) laptop!
- Samsung Galaxy S24 Ultra 256GB + töltőfej
- Apple iPhone 15 Pro Max 256GB, Kártyafüggetlen, 1 Év Garanciával
- BONTATLAN Lenovo ThinkCentre M70s SFF Business Időtálló Asztali gép -50% i5-14500 16/512 770 Magyar
- Tervezős Lenovo Thinkpad P14 S gen2 Laptopom (Nvidia 4Gb-os videokártyával) kifogástalan eladó!
- Telefon felvásárlás!! Samsung Galaxy A20e/Samsung Galaxy A40/Samsung Galaxy A04s/Samsung Galaxy A03s
- DELL PowerEdge R730xd 16LFF 160TB+400GB 2U rack - 2xE5-2683v4 (16c/32t),256GB RAM,2x10G NET,HBA330
- Apple iPad 9th Gen 256GB, Wi-Fi+Cellular, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! Asus H370-A i5 9600K 16GB DDR4 512GB SSD RTX 2060 Super 8GB Zalman T7 Zalman 500W
- 100% ÚJ - PÁR DARAB LENOVO LEGION PRO 7 - RTX 5090 - 64GB, 2TB SSD
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest


