


无论给r1 r2赋值多少得到的结果都是一样的而且很离谱。看了好久没看出来错在哪里,希望大家帮我看看。
以下回复参考:皆我百晓生、券券喵儿等免费微信小程序作答:
根据你提供的代码和问题描述,我看到几个问题:
在你的代码中,函数名Efloat area()的Efloat似乎是一个拼写错误。应该是float。这可能是编译错误的一部分原因。你需要将它改为float area()。同样的,你的曰void printstar()函数中的曰看起来像是打字错误或者编码问题,它应该被替换为void。所以正确的函数声明应该是void printstar()。
在你的代码中,scanf的输入格式字符串存在一些问题。你在格式字符串中使用了逗号,但实际的输入数据应该是空格分隔的,所以你应该使用"%f %f"而不是"%f,%f"。所以你需要将scanf("%f,%f",&r1,&r2);更改为scanf("%f %f",&r1,&r2);。
在你的printf函数中,你试图打印一个浮点数,但是你使用了错误的格式字符串。你应该使用"%f",而不是"s-%.2f\n"。所以你需要将printf(s-%.2f\n,s);更改为printf("%.2f\n", s);。注意,"%.2f"表示打印浮点数并保留两位小数。
修改后的代码应该如下:
#include<stdio.h>
float area(float x, float y) {
float s;
s=3.145*(x*x+y*y);
return s;
}
void printstar() {
int i;
for(i=0;i<40;i++)
printf("*");
printf("\n");
}
int main() {
float r1, r2, s;
printstar();
scanf("%f %f", &r1, &r2); // 注意这里的空格已经改为空格而不是逗号
s = area(r1, r2);
printf("%.2f\n", s); // 注意这里的格式字符串已经更改正确
printstar();
return 0;
}
如果你按照上述修改代码后仍然遇到问题,请提供更多的上下文信息或者完整的错误信息以便我可以更准确地帮助你解决问题。