C/Visual C - El programa dejó de funcionar

 
Vista:

El programa dejó de funcionar

Publicado por Juan (1 intervención) el 21/04/2018 20:24:29
Hola. Estaba haciendo un programa que reemplazara la función pow, pero cuando lo ejecuto, me aparece el primer printf y después una ventana que dice "El programa dejó de funcionar" Alguien me podría decir qué está mal? Gracias

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <math.h>
#include <string.h>
 
float p (float n1,float n2);
int main(){
    float a,b,C;
    printf("Ingrese base ");
    scanf("%f",a);
    printf("Ingrese exponente ");
    scanf("%f",b);
    C =p(a,b);
    return 0;
}
float p(float n1,float n2){
    float p,pot=1,i=0;
    if(n2==0){
        pot=1;
    }
    if(n2>0){
        while(i<=n2){
        pot=n1*pot;
        i++;
        }
    }
    if(n2<0){
        n2=n2*(-1);
        while(i<=n2){
        pot=1/n1*pot;
        i++;
        }
    }
 
    printf("La potencia es %f",pot);
 
return p;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 148
Bronce
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

El programa dejó de funcionar

Publicado por dario (29 intervenciones) el 22/04/2018 05:59:09
Tu mismo codigo un poco arreglado, fijate los errores.
Saludos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <math.h>
#include <string.h>
 
float p (float n1,float n2);
 
int main() {
    float a,b,C;
 
    printf("Ingrese base ");
    scanf("%f",&a); //te faltaba el "&"
    printf("Ingrese exponente ");
    scanf("%f",&b); //te faltaba el "&"
 
    C =p(a,b);
 
    return 0;
}
 
float p(float n1,float n2){
    float p,pot=1,i=0;
 
    if(n2==0) {
        pot=1;
    }
 
    else if(n2>0) {
        while(i<n2){ //la condicion debe ser i < n2
            pot=n1*pot;
            i++;
        }
    }
 
    else if(n2<0) {
        n2=n2*(-1);
 
        while(i<n2) { //debe ser i < n2
            pot=1/n1*pot;
            i++;
        }
    }
 
    printf("La potencia es %f",pot);
 
return p;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar