我在学校得到这个,这让我发疯:

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);

08-28 05:54