Új hozzászólás Aktív témák
-
Steve-S
tag
Hi mindenkinek!
Egy kis segítség kéne! ANSI C-ben kellene egy olyan programot csinálnom, hogy egy előjel nélküli egész számot beolvastatok, és ki kell iratni a számot az adott számrendszerben. Ez 2-es számrendszertől 9-esig lehet. Van olyan függvény amivel ezt meg lehetne oldani?
Elkezdtem, eddig itt járok, már csak a függvény kéne bele, de azt nem tudom hogy kéne, eléggé láma vagyok még a C-hez. Pls segítsetek ezt estig meg kéne oldanom, kötelező feladat, de valahogy nem boldogulok vele!
#include <stdio.h>
#include <stdlib.h>int main(void)
{
unsigned int a,b;
printf("Adj meg egy egész számot: ");
scanf("%d",&a);
printf("Adj meg egy számrendszert (2-9): ");
scanf("%d",&b);if(b<2 || b>9)
{
printf("Nem jó számrendszert adtál meg!");
exit(-1);
}
}[ Szerkesztve ]
Set The World On Fire!!!
-
Steve-S
tag
char *valto(unsigned int a, unsigned int b)
{
char *result;
int n=floor(log(a)/log(2)+1);
int i=0;
result=(char *)malloc((n+1)*sizeof(char));
do
{
a%b=result[n-i-1];
a/=b;
i++;
}
while(a!=0)
return result;
}Erről mit gondolsz? Nemfordítja le mert valami kínja van.
int n=floor(log(a)/log(2)+1);
Ez a sor elvileg azt csinálja hogy kiszámítja a tömb méretét (múlt órai feladatból van).Set The World On Fire!!!
-
Steve-S
tag
Ha ezt megmondja nekem valaki hogy miért nem működik normálisan ez a programom, akkor megközönném! Fordításnál semmi hiba nincs. Átnéztem már 100x az egészet de nem tudom mi a hiba. A feladat hogy bekérek egy egész számot, és átváltja a megadott számrendszerbe (2-9). A feladatot ily módon kell megoldani ahogy megcsináltam, tehát ne írjátok át ha lehet, csak nem tudom hogy miért nem működik megfelelően. Eredménynek csak hülye összevissza karaketerket ad ki.
#include <stdio.h>
#include <math.h>
#include <stdlib.h>char *valto(unsigned int szam, unsigned int szr)
{
char *eredmeny;
int n=floor(log(szam)/log(szr)+1);
int i=0;
eredmeny=(char *)malloc((n+1)*sizeof(char));while(szam>0)
{
eredmeny[n-i-1]=szam%szr;
szam/=szr;
i++;
}eredmeny[n]=0;
return eredmeny;
}int main(void)
{
unsigned int a,b;
char *kesz=NULL;printf("Adj meg egy egesz szamot: ");
scanf("%d",&a);
printf("Adj meg egy szamrendszert (2-9): ");
scanf("%d",&b);if(b<2 || b>9)
{
printf("\nNem jo szamrendszert adtal meg!\n");
exit(-1);
}kesz=valto(a,b);
if(kesz) puts(kesz);
if(kesz) free(kesz);return 0;
}Set The World On Fire!!!
-
Steve-S
tag
Hi mindenkinek! Újabb kérdésem lenne. Egy olyan függvényt kell írnom ami egy előreinicializált mátrixot(ékezet nélküli szavakkal töltöm fel), névsor szerint rendez. Az algoritmus meg a lényeg megvan, de úgy kell csinálni hogy a fgv paramétere char ** típusú legyen. Na most ezt kellene nekem elmagyarázni hogy ez a dupla csillagos modszer hogy működik, pl. hogy hogy töltöm fel így a mátrixot ha ilyen típussal kell, mert ez sem sikerült még. Lehet kicsit láma kérés de nem igazán vágom. Ha valaki elmagyarázná jó lenne. Köszi!
Set The World On Fire!!!
-
Steve-S
tag
Nah megvan, márcsak azt mondja meg valaki hogy miért fagy ki ez a program egyből miután elindítom? Fordításnál semmi hiba, függvény is elvileg jó! Akkor mi lehet a gond?
#include <stdio.h>
#include <string.h>void rendez(char **matrix)
{
int i, j;
char ideiglenes[20];for(i = 0; i < 10; i++)
for(j = 0; j < 10; j++)
{
if (strcmp(matrix[i], matrix[j]) < 0)
{
strcpy(ideiglenes, matrix[i]);
strcpy(matrix[i], matrix[j]);
strcpy(matrix[j], ideiglenes);
}
}
printf("\nRendezve: \n\n");
for(i = 0; i < 10; i++)
printf("%s\n",matrix[i]);}
int main(void)
{char *automarkak[10];
automarkak[0]="Mercedes";
automarkak[1]="Ferrari";
automarkak[2]="Audi";
automarkak[3]="Lada";
automarkak[4]="Chevrolet";
automarkak[5]="Ford";
automarkak[6]="Skoda";
automarkak[7]="Suzuki";
automarkak[8]="Opel";
automarkak[9]="Chrysler";rendez(automarkak);
}Set The World On Fire!!!
-
Steve-S
tag
Hi all!
A kérdésem:
Van egy függyvény definíció: double tombatlag(double *tomb)
ez kiszámítaná a tömb eleminek az átlagát és visszaadja azt. Azt nem tudom hogy hogy kellene az elem összeadó ciklusnak megadni azt hogy meddig menjen, magyarán mennyi a tömb mérete, vagy hogy hol van a tömb vége, anélkül hogy ezt megadnánk a függvénynek paraméterként, vagy a ciklusváltozóban beírnám a feltételnél az elemszámot?
Itt van egy példa amelyben kiszámolja amennyiben tudom a tömb méretét, de nekem az a verzió kéne mikor nem tudom előre a méretet. Egyáltalán van erre valamilyen módszer C-ben? Sok mindent próbálgattam már, de eddig nem volt jó semmi.double tombatlag(double *tomb)
{
double osszeg=0;
int j, db=0;
for(j=0;j<5;j++)
{
osszeg += *tomb++;
db++;
}
return osszeg/db;
}Set The World On Fire!!!
-
Steve-S
tag
válasz cellpeti #676 üzenetére
Hi! Itt az én verzióm, bár lehet nem a legtökéletesebb, nem vagyok valami nagy prof C-ből, de működik! Bár lehet már kicsit későn postolom. Azért remélem segítettem valamit.
#include <stdio.h>
int getline(char t[],int lim)
{
int i;
char c;
for(i=0; i<lim && (c=getchar())!=EOF && c!='\n'; i++)
t[i]=c;
return i;
}
main()
{
int s, i, osszeg, szamok;
char tomb[20];
printf("Adj meg egy 6 szamjegyu kodot: ");
while((s=getline(tomb,20))!=0)
{
osszeg=0;
szamok=0;
if(s>0 && s!=6)
{
printf("A kod nem 6 szambol all!\n");
printf("Adj meg egy 6 szamjegyu kodot: ");
continue;
}
if(s==6)
{
for(i=0; i<6; i++)
if(tomb[i]>='0' && tomb[i]<='9')
szamok++;
}
if(s==6 && szamok!=6)
{
printf("Nem jo a kod, csak szamokat tartalmazhat!\n");
printf("Adj meg egy 6 szamjegyu kodot: ");
continue;
}
if(szamok==6)
{
for(i=0; i<5; i++)
osszeg+=tomb[i]-'0';
}
if((osszeg%6)==(tomb[5]-'0'))
{
printf("Jo a kod!\n");
fflush(stdin);
printf("Adj meg egy 6 szamjegyu kodot: ");
}
else
{
printf("Nem jo a kod!\n");
fflush(stdin);
printf("Adj meg egy 6 szamjegyu kodot: ");
}
}
}Set The World On Fire!!!
Ú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!
- 1.250.000 FT helyett 940.000 FT !! MacBook Pro 16" M3 Pro 12CPU / 18GPU / 18GB / 512 SSD
- RTX 2080TI ROG STRIX GAMER PC
- AKCIÓ !! M3 Chip - MacBook Pro 14" 8C CPU / 10C GPU / 8 GB/ 1 TB / Bontatlan / Magyar
- Tidradio td-h3 akkumulátor
- HP ZBook Studio x360:i7 9850H,32GB,512GB,P2000,15.6" UHD 3840x2160 TOUCH 600nit 100%AdobeRGB,HP gari