Chirurgia cranio-cerebrală minim invazivă
Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne. Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale. www.neurohope.ro |
Vreau sa transform hexa in dec
Last Updated: Aug 06 2015 13:39, Started by
doru_octavian
, Aug 05 2015 14:09
·
0
#1
Posted 05 August 2015 - 14:09
http://paste.ofcode....Gk3vxE75eJCZ9Ah
Orice input as introduce, programul ma duce pe linia urmatoare si asteapta un nou input. Ce e gresit la partea de citire? Nu vreau sa folosesc fgets pentru a citi. Multumesc. |
#2
Posted 05 August 2015 - 14:21
Nu e \r in loc de \n?
Edited by sergiu_spooky, 05 August 2015 - 14:22. |
#3
Posted 05 August 2015 - 14:23
#5
Posted 05 August 2015 - 14:38
#6
Posted 05 August 2015 - 14:43
Dacă zici:
hex[i] != '\n'el se va opri numai atunci când introduci LF(new-line) ; asta e valabil în unix dacă apeşi <Enter> , în wind acesta face CR -şi eventual LF(vezi notepad)- deci nu vei încheia bucla nicicând. Fă-l să se termine când apeşi 'T'. |
#7
Posted 05 August 2015 - 14:52
La mine versiunea asta merge, desi rulez pe Linux.
#include "stdio.h" #include "math.h" int main(int argc, char* argv[]) { char hex[10]; int i, temp, dec = 0, elements = 0, var; hex[0] = 'r'; for (i = 0; hex[i] != '\n'; i++) { hex[i] = getchar(); printf("%d - %c\n", i, hex[i]); elements++; } printf("x\n"); var = elements; for (i = 0; i < elements; i++) { switch (hex[i]) { case 'A': temp = 10 * pow (16.0, (var-1)); break; case 'B': temp = 11 * pow (16.0, (var-1)); break; case 'C': temp = 12 * pow (16.0, (var-1)); break; case 'D': temp = 13 * pow (16.0, (var-1)); break; case 'E': temp = 14 * pow (16.0, (var-1)); break; case 'F': temp = 15 * pow (16.0, (var-1)); break; default: temp = (hex[i] - '0') * pow (16.0, (var-1)); break; } var--; dec = dec + temp; } printf("d - %d", dec); getchar(); return 0; } |
#8
Posted 05 August 2015 - 15:05
#9
Posted 05 August 2015 - 15:14
Pentru astfel de probleme (si nu numai) s-a inventat debuggerul. Vezi executia pas cu pas prin cod, inspectezi variabile, tragi concluzii. Invata sa folosesti instrumentele.
Edited by neagu_laurentiu, 05 August 2015 - 15:19. |
#10
Posted 05 August 2015 - 17:55
|
#11
Posted 05 August 2015 - 18:48
Ai mers pas cu pas prin for, ai inspectat valorile variabilelor si nu te-ai lamurit ? Ce conditie nu respecta tu dandu-i corect valoarea ? Se vede ca-n palma acolo. Da' sfant e cand tu descoperi, noi doar dam o indicatie. Si cum zici ca vrei sa devii profesionist atunci foloseste instrumentul adecvat (tot apesi o tasta, nu-i mare branza).
Edited by neagu_laurentiu, 05 August 2015 - 19:10. |
#12
Posted 06 August 2015 - 11:38
Regula prevede ca intre " " sa pui siguri de caractere si intre ' ' sa pui simboluri.
Deci x='c' este corect. x='xc' este eronat. La fel de eronat este si x='\n' si x= '\r'. Nu se stie exact cum se va comporta compilatorul in cazul in care intalneste astfel de cocomarle. Unele compilatoare accepta \n si \r ca si caractere speciale, altele nu. Unele compilatoare te vor avertiza in privinta utilizarii ilegale a lui ' ' altele nu. |
#13
Posted 06 August 2015 - 12:06
cspot, on 06 august 2015 - 11:38, said:
Regula prevede ca intre " " sa pui siguri de caractere si intre ' ' sa pui simboluri. Deci x='c' este corect. x='xc' este eronat. La fel de eronat este si x='\n' si x= '\r'. Nu se stie exact cum se va comporta compilatorul in cazul in care intalneste astfel de cocomarle. Unele compilatoare accepta \n si \r ca si caractere speciale, altele nu. Unele compilatoare te vor avertiza in privinta utilizarii ilegale a lui ' ' altele nu. Si '\n' nu este simbol? |
#15
Posted 06 August 2015 - 12:18
|
#16
Posted 06 August 2015 - 12:22
Nu mai pune urechea la orice vorba auzita.
Vezi ce faci in for-ul ala, ce conditii ai pus, cum se evalueaza. https://msdn.microso...y/b80153d8.aspx |
#17
Posted 06 August 2015 - 12:47
neagu_laurentiu, on 06 august 2015 - 12:22, said:
Nu mai pune urechea la orice vorba auzita. Vezi ce faci in for-ul ala, ce conditii ai pus, cum se evalueaza. https://msdn.microso...y/b80153d8.aspx hex[0] = 'r'; for (i = 0; hex[i] != '\n'; i++) { hex[i] = getchar(); if ( hex[i] != '\n') { elements++; } } Varianta asta functioneaza in Linux. Am facut pe hartie niste inputuri si ar trebui sa functioneze. Din debugger am aflat ca nu se opreste din cititul inputului. Am incercat si '\n' si '\r'. |
#18
Posted 06 August 2015 - 12:59
Tu stii cand se evalueaza fiecare expresie din for ? De ce nu se opreste, doar vezi in variabila exact ce valoare are.
Aici e precizie, nu "ar trebui sa functioneze" ! Si nu ti se aprinde un bec in minte cand poti merge in nestire in for-ul ala tinand cont ca ai un vector limitat ? Nu mai zic de complicarea codului de dragul sa iasa ceva, nu mai conteaza cum ! Edited by neagu_laurentiu, 06 August 2015 - 13:02. |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users