Ciao a tutti!
Esercizio C:
"Si realizzi un programma che, dati due valori B (numero intero, detto ‘base’) ed E (numero intero positivo, detto ‘esponente’), calcoli e stampi il valore intero di B^E (base elevato ad esponente). Non si utilizzi la funzione pow() ma si adotti il metodo delle moltiplicazionisuccessive."
Il programmino è ancora all' inizio però ci sto lavorando per arrivare alla fine. Ho inserito in tutti e tre le versioni "z=x*y" per vedere se era giusta oppure no una mia intuizione che ho avuto.
Quando c'è il "printf", dopo lo "scanf" il programma va a capo e vorrei che non lo facesse. Ho provato \r oppure \b ma non cambia nulla.
#include <stdio.h>
int x,y;
char simb='^';
int z=x*y;
int main()
{
while(1)
{
printf("\n Moltiplicazione tra due numeri\n\n\n");
printf("Inserisci due numeri:");
scanf("%d",&x);
printf("\r %c",simb);
scanf("%d",&y);
printf("%d",z);
}
return 0;
}
Mi dice "initializer element is not constant"
Ho cercato su internet ed ho capito cosa sta ad indicare questo errore. Però io non capisco dove sbaglio. Io voglio che anche z, sia una variabile, che abbia anche lei all' inizio un valore assegnato (non da me), sconosciuto.
Se invece sostituiscono le tre righe di codice, dopo "include", con queste:
int x,y,z;
char simb='^';
z=x*y;
Allora mi dice anche:
warning: data definition has no type or storage class
z=x*y;
^
warning: type defaults to ‘int’ in declaration of ‘z’ [-Wimplicit-int]
#include <stdio.h>
int main()
{
int x,y;
char simb='^';
int z=x*y;
while(1)
{
printf("\n Moltiplicazione tra due numeri\n\n\n");
printf("Inserisci due numeri:");
scanf("%d",&x);
printf("\r %c",simb);
scanf("%d",&y);
printf("%d",z);
}
return 0;
}
Ho provato 2/3 volte ma come risultato mi da zero.
#include <stdio.h>
int main()
{
int x,y,z;
char simb='^';
while(1)
{
printf("\n Moltiplicazione tra due numeri\n\n\n");
printf("Inserisci due numeri:");
scanf("%d",&x);
printf("\b %c",simb);
scanf("%d",&y);
z=x*y;
printf("%d",z);
}
return 0;
}
Qui calcola in modo giusto "z".