Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define LUNGHEZZA_INPUT 4
- int radice_intera(int x)
- {
- int a=1;
- while(a*a<=x)
- a=a+1;
- return a-1;
- }
- int potenza(int base, int esp)
- {
- int i=0;
- int a=1;
- int risultato;
- if (esp==0) return a;
- else
- {
- for(i=0;i<esp;i++)
- {
- risultato=a*base;
- a=risultato;
- }
- return a;
- }
- }
- int main()
- {
- /* Progettare un programma RADICE che legga in ingresso una serie di numeri interi positivi di al piu
- 4 cifre e ne calcoli la radice quadrata intera. Il programma deve richiedere ciclicamente all'utente il
- numero del quale desidera la radice e visualizzare il risultato. Il programma deve terminare quando
- in ingresso riceve la parola FINE. */
- char ingresso_char[LUNGHEZZA_INPUT];
- int ingresso_int[LUNGHEZZA_INPUT];
- int radicando=0;
- int lunghezza_input=LUNGHEZZA_INPUT;
- int i=0, k=0;
- printf("Inserire un numero di al piu' %d cifre o la parola 'fine'.\n", lunghezza_input);
- for(i=0;i<LUNGHEZZA_INPUT;i++)
- {
- scanf("%c", &ingresso_char[i]);
- if (ingresso_char[i]=='\n')
- {
- k=i;i=LUNGHEZZA_INPUT;
- }
- else k=LUNGHEZZA_INPUT;
- }
- if((ingresso_char[0]=='f' || ingresso_char[0]=='F') &&
- (ingresso_char[1]=='i' || ingresso_char[1]=='I') &&
- (ingresso_char[2]=='n' || ingresso_char[2]=='N') &&
- (ingresso_char[3]=='e' || ingresso_char[3]=='E') )
- {
- printf("Ricevuta la stringa 'fine'. Tanti saluti.");
- return 0;
- }
- else
- {
- for(i=0;i<k; i++)
- {
- switch(ingresso_char[i])
- {
- case '1':
- ingresso_int[i]=1;
- break;
- case '2':
- ingresso_int[i]=2;
- break;
- case '3':
- ingresso_int[i]=3;
- break;
- case '4':
- ingresso_int[i]=4;
- break;
- case '5':
- ingresso_int[i]=5;
- break;
- case '6':
- ingresso_int[i]=6;
- break;
- case '7':
- ingresso_int[i]=7;
- break;
- case '8':
- ingresso_int[i]=8;
- break;
- case '9':
- ingresso_int[i]=9;
- break;
- case '0':
- ingresso_int[i]=0;
- break;
- default:
- printf("Errore inserimento.");
- return 0;
- }
- }
- }
- printf("Hai inserito il numero:\n");
- for(i=0;i<k; i++)
- {
- printf("%d", ingresso_int[i]);
- }
- /*ora devo trasformare l'array ingresso_int in un numero, per questo mi serve la funzione potenza*/
- printf("\n");
- for(i=k-1;i>=0;i--)
- radicando=radicando+ingresso_int[i]*potenza(10, k-1-i);
- printf("La radice intera del numero %d corrisponde a %d.\n", radicando, radice_intera(radicando));
- printf("\n\n \n");
- }
Add Comment
Please, Sign In to add comment