shi5486993 发表于 2022-4-7 10:55:01

为什么算不出来?

#include <stdio.h>
double L(double x,double y){
    printf("L=%g\n",2*(x+y));
}
double S(double x,double y){
    printf("S=%g\n",x*y);
}
int main(){   
    double a,b;
    printf("请输入长和宽:\n");
    scanf("%f%f",&a,&b);
    L(a,b);
    S(a,b);
   
    return 0;
}

Gacy 发表于 2022-4-7 11:00:54

#include <stdio.h>
double L(double x, double y) {
        printf("L=%g\n", 2 * (x + y));
        return 2 * (x + y);
}
double S(double x, double y) {
        printf("S=%g\n", x*y);
        return x * y;
}
int main() {
        double a, b;
        printf("请输入长和宽:\n");
        scanf_s("%f%f", &a, &b);
        L(a, b);
        S(a, b);
        return 0;
}

Gacy 发表于 2022-4-7 11:01:37

为什么要在print里面计算呢

shi5486993 发表于 2022-4-7 12:18:40

Gacy 发表于 2022-4-7 11:00


double的输出格式是%lf

x3322699 发表于 2022-4-7 15:14:46

double 函数定义了类型,你不返回怎么能行?这能运行通过真是离离原上谱。

zzxhh628 发表于 2022-4-7 18:38:34

x3322699 发表于 2022-4-7 15:14
double 函数定义了类型,你不返回怎么能行?这能运行通过真是离离原上谱。

手机上有的编译器就这样,一些问题发现不了

yzzc 发表于 2022-4-8 15:52:38

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void L(double x, double y)//如果函数类型不是void,就要返回一个函数值,如你源程序double要一个返回值
{
    printf("L=%g\n", 2 * (x + y));
}
void S(double x, double y)
{
    printf("S=%g\n", x * y);
}
int main(void)
{
    double a, b;
    printf("请输入长和宽:\n");
    scanf("%lf%lf", &a, &b);   //sacnf函数是格式输入函数,double要用lf,float可以用f
    L(a, b);
    S(a, b);
    return 0;
}

shi5486993 发表于 2022-4-10 22:56:26

yzzc 发表于 2022-4-8 15:52
#define _CRT_SECURE_NO_WARNINGS
#include
void L(double x, double y)//如果函数类型不是void,就要 ...

谢谢大佬!
页: [1]
查看完整版本: 为什么算不出来?