为什么我有问题,当输入被指示保存在一个整数变量时,在C编码



我正在学习用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);

相关内容

  • 没有找到相关文章