我正在学习用C语言编程,当我运行程序时,我遇到了这个问题。
/cygdrive/C/Program Files/NetBeans 8.0.2/ide/bin/nativeexecution/doron .sh: line 33: 696 Segmentation fault (core dump) sh "${SHFILE}"
代码
int main() {
int edad1,edad2;
char nombre1[30],nombre2[30];
float promedio;
printf("Introduzca el primer nombre n");
gets(nombre1);
printf("Introduzca la primer edad n");
scanf("%d",edad1);
printf("Introduzca el segundo nombre n");
gets(nombre2);
printf("Introduzca la segunda edad n");
scanf("%d", edad2);
promedio = (edad1 +edad2)/2.0;
printf("El primer nombre es: n %d n y su edad es: n El segundo nombre es: "
"%d n y su edad es: n %d nn El promedio es: %f" , nombre1 ,edad1,nombre2,edad2,promedio);
return (0);
}
它首先运行良好,接收字符串,但是当我输入一个整数它崩溃时,它可能是编译器的问题,我使用GNU CC编译器,当我在netbeans上编译它时,我得到同样的错误。
你需要传递一个指针给scanf:
scanf("%d", &edad1);
同样,在你的最后一个printf()中,你输出的nombre1带有%d,这是错误的。它应该是%s,因为nombre1是一个字符串。
试试这个
promedio = ((float)(edad1 +edad2))/2.0;
printf("El primer nombre es: %s n y su edad es: %dn El segundo nombre es: %s n y su edad es: %d nn El promedio es: %f" , nombre1 ,edad1,nombre2,edad2,promedio);