我一直得到相同的错误代码:"警告:格式'%f'需要类型为'double'的参数,但参数2的类型为'float *'[-Wformat =]" 我的代码如下,任何帮助调试它将非常感谢!
//Program to compute the stress and strain in steel rods of different diametes
#include <stdio.h>
#include <math.h> //#include <math.h>
//Define Constants
#define PI 3.14f;
//Define Variables
float Es;
float D;
float P;
int main(void)
{
Es = 3 * pow(10,7);
for(P=50000; P<=100000; P=P+25000) {
printf("\nCompression Load = %f\n\n", &P);
printf("Diameter Stress Strain\n");
for(D=2; D<=5; D=D+1) {
float Area;
Area = D * D / 4 * PI;
float Stress;
Stress = P / Area;
float Strain;
Strain = Stress / Es;
printf("%f %f %f\n", &D, &Stress, &Strain);
}
}
return 0;
}
答案 0 :(得分:2)
?sample
的{{1}}格式说明符需要%f
作为参数。您传入的内容(在多个位置)是printf
的地址,即double
。这些是不相容的。
您需要从这些操作数中删除运算符float
的地址。然后,您将传递float *
值,这些值将自动转换为&
值:
float