我在学校得到这个,这让我发疯:
float Alas,Tinggi,Luas;
printf("Masukan Nilai Alas Segitiga:");
scanf("%f",Alas);
printf("\nMasukan Nilai Tinggi Segitiga");
scanf("%f",Tinggi);
Luas=0.5*Alas*Tinggi;
printf("\nNilai Luas Segitiga adalah : %f",Luas);
这样就回来了
D:\BUKU\ngitung2\main.cpp:9: warning: format '%f' expects argument of type 'float*', but argument 2 has type 'double' [-Wformat=]
scanf("%f",Alas);
^
和
D:\BUKU\ngitung2\main.cpp:11: warning: format '%f' expects argument of type 'float*', but argument 2 has type 'double' [-Wformat=]
scanf("%f",Tinggi);
^
有什么问题吗?这本书是这样说的。我在stackoverflow中阅读了很多引用文献,但没有任何帮助。我已经尝试过
%lf
了,但是没有用。 最佳答案
scanf
需要一个指向变量的指针,而不是变量本身。您可以通过使用一元&
(的地址)运算符传递变量的地址来轻松修复它:
float Alas,Tinggi,Luas;
printf("Masukan Nilai Alas Segitiga:");
scanf("%f",&Alas);
printf("\nMasukan Nilai Tinggi Segitiga");
scanf("%f",&Tinggi);
Luas=0.5*Alas*Tinggi;
printf("\nNilai Luas Segitiga adalah : %f",Luas);