Zdravim, dostali jsme ukol naprogramovat jednu takovou ulohu v jazyce C.
Zkousel sem to dat dohromady, ale obavam se, ze moje znalosti v programovani na to stacit nebudou.
Pro cloveka, ktery v Cecku trochu umi to podle me bude otazka par minut...
Prosimvas pomohl by nekdo?
Zadani:
Sečtěte dvě celá čísla zadaná v šestkové soustavě.
Zadání a výsledek (rovněž v šestkové soustavě) vypište na
obrazovku a zároveň připojte na konec zadaného souboru.
Maximální počet cifer vstupních čísel je 10.
volání: sixplus sčítanec1 sčítanec2 cilovy_soubor
Fórum › C / C++
Pomoc s lehkym programkem v C
Pokud už jsi zkusil něco vybastlit v C, tak to sem šoupni. Když tu lidi uvidi aspoň nějakou snahu, tak jistě rádi poradí, ale takhle...Jistě, teď mě může nařknout z toho, že jsem jednu úlohu už udělal, ale to jen z toho důvodu, že mě zaujala.
A ještě něco: pokud, umíš sčítat čísla, tak jak se to učí na ZŠ, tak by to neměl být problém napsat.
mno kdybyste se alespon o neco pokusil (napsat muzute cokoliv)
kdybyste sem dal kod a ukazal vazne snahu....
cely by to nikdy nikdo nemel Vam psat, pouze nakopnout !
a tady je muj kopanec:
#include <stdio.h>
#include <stdlib.h>
char szA[10], szB[10], szC[10];
int A=0,B=0,C=0;
FILE *fw;
int main(){
printf("Zadejte cele cislo v sestkove soustave\n");
scanf("%s", szA);
printf("Zadejte druhe cislo v sestkove soustave\n");
scanf("%s", szB);
atoi(szA, A, 6);
atoi(szB, B, 6);
C = A + B;
printf("Zadali jste:%d + %d = %d", A, B, C);
szC = itoa(C);
fw = fopen("existujici_soubor.txt", "a");
fprintf(fw, szC);
fclose(fw);
getchar();
return 0;
};
ps: psal sem to z hlavy kdyby to hazelo chyby....
takze vy uz si jen dodelate nacteni pres argumenty fce main (ono volani: sixplus sčítanec1 sčítanec2 cilovy_soubor) a vyhodite tedy scanf ;-)
aha to mi nedoslo, no clovek nevi vono nekde maj superprimitivni dotazy....no uvidime co tazatel napise kdyz tak bych dal jinej kopanec ;-)
Dik za pomoc, algoritmus by tam skutecne mel byt, ale to uz nejak usmolim, ja sem v tomhle fakt uplnej noob, takze kazda rada dobra.
TO: Jura Skutecne sem se s tim uz vcera pral, ale to bych tady radsi moc nezverejnoval, s mejma znalostma sem totiz v cecku zkoncil nekde u cteni znaku z klavesnice a vytvareni melodie :(
Tak bohuzel
#include <stdio.h>
#include <stdlib.h>
char szA[10], szB[10], szC[10];
int A=0,B=0,C=0;
FILE *fw;
int main(){
printf("Zadejte cele cislo v sestkove soustave\n");
scanf("%s", szA);
printf("Zadejte druhe cislo v sestkove soustave\n");
scanf("%s", szB);
atoi(szA, A, 6);
atoi(szB, B, 6);
C = A + B;
printf("Zadali jste:%d + %d = %d", A, B, C);
szC = itoa(C);
fw = fopen("existujici_soubor.txt", "a");
fprintf(fw, szC);
fclose(fw);
getchar();
return 0;
};
nejede sou tam nejaky problemy s tim "atoi(szA, A, 6); atoi(szB, B, 6);" a ja vubec nevim k cemu to slouzi
do budoucna si pamatujte kdyz neznate nejakou fci zadejte ji do www.google.cz
tam najdete nejen jeji anglicky popis co dela ale vetisnou i example (priklad) vedle prikladu taky uvidite co fce potrebuje za hlavickove soubory k include a nebo popr. knihovny k pridani k build.
onen priklad tedy vypada po uprave takto:
#include <stdio.h>
#include <stdlib.h>
char szA[10], szB[10], szC[10];
int A=0,B=0,C=0;
FILE *fw;
int main(){
printf("Zadejte cele cislo v sestkove soustave\n");
scanf("%d", &A);
printf("Zadejte druhe cislo v sestkove soustave\n");
scanf("%d", &B);
itoa(A, szA, 6);
itoa(B, szB, 6);
A = atoi(szA);
B = atoi(szB);
C = A + B;
printf("Zadali jste:%d + %d = %d", A, B, C);
itoa(C, szC, 6);
fw = fopen("existujici_soubor.txt", "a");
fprintf(fw, szC);
fclose(fw);
getchar();
return 0;
};
ale je Vam to k nicemu kdyz preci potrebujete algoritmus prevodu z dec na hekta
Máš štěstí, že jsem se zrovna nudil, proto dávám do úvahy následující řešení, vysvětlovat to snad ani není potřeba.
#include <stdio.h>
int main(int argc, char* argv[])
{ if(argc < 4){
printf("Spatna vstupni data.\nFormat vstupnich dat je nasledujici: "\
"sixplus scitanec1 scitanec2 cilovy_soubor");
return 1;
}
char *s1 = argv[1], *s2 = argv[2]; /*jen pro ulehčení zápisu*/
char vysledek[12];
int i,j=strlen(s1)-1,m=strlen(s2)-1, prenos = 0;
for(i = 0; i < sizeof(vysledek)/sizeof(vysledek[0]); i++, j--, m--)
{ int t = prenos;
t += (isdigit(s1[j]) && j >= 0) ? s1[j]-'0' : 0;
t += (isdigit(s2[m]) && m >= 0) ? s2[m]-'0' : 0;
vysledek[i] = (t%6)+'0';
prenos = t/6;
if(m < 0 && j < 0) break; /*pokud už na vstupu nic není vyskočí*/
}
vysledek[i]='\0';
FILE * out = fopen(argv[3], "a");
if(out== NULL)
{ fprintf(stderr, "CHYBA: Soubor %s se nepodarilo otevrit.\n", argv[3]);
return -1;
}
fprintf(out, "%s + %s = %s\n", s1, s2, strrev(vysledek));
fclose(out);
return 0;
}
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Pomoc s programkem — založil Dan
Pomoc s programkem — založil kikinka
Pomoc s prográmkem v C — založil pavly
Pomoc.... nějaká chybka prosím pomoc - více v podrobném popisu — založil tkstudent
Pomoc, pomoc s úkolem (matice v Delphi) — založil maxikp
Moderátoři diskuze