Dlaczego mi nie działa ? Przy potęgowaniu podaje zły wynik końcowy
#include <stdio.h> #include <math.h>
main(){ int a , b; int m = pow(a,b); printf("Podaj pierwsza liczbe naturalna a:\n"); scanf("%d", &a); printf("Podaj druga liczbe naturalna b:\n"); scanf("%d", &b); if(a<0||b<0){ printf("Podane liczby nie moga byc inne niz naturalne!\n"); }else{ printf("a^b= %d \n", m); } }
Zgłoś nadużycie!
Dlatego, że wykonujesz potęgowanie na zmiennych, które nie mają przypisanych wartości przez użytkownika, a przez kompilator.
Powinno być tak:
#include <stdio.h> #include <math.h>
main(){ int a , b; int m; printf("Podaj pierwsza liczbe naturalna a:\n"); scanf("%d", &a); printf("Podaj druga liczbe naturalna b:\n"); scanf("%d", &b); if(a<0||b<0){ printf("Podane liczby nie moga byc inne niz naturalne!\n"); }else{
Powinno być tak:
#include <stdio.h>
#include <math.h>
main(){
int a , b;
int m;
printf("Podaj pierwsza liczbe naturalna a:\n");
scanf("%d", &a);
printf("Podaj druga liczbe naturalna b:\n");
scanf("%d", &b);
if(a<0||b<0){
printf("Podane liczby nie moga byc inne niz naturalne!\n");
}else{
m = pow(a,b); printf("a^b= %d \n", m);
}
}