C语言编程中,调试出现error C2143: syntax error : missing ';' before 'type'该错误如何解决?谢谢啦~ 10

题目:写一个函数,根据输入的参数,某公司某个销售员第一季度、第二季度、第三季度和第四季度的销售额,求出最大销售额对应的季度值和最小销售额对应的季度值,并在主函数中输出。程... 题目:写一个函数,根据输入的参数,某公司某个销售员第一季度、第二季度、第三季度和第四季度的销售额,求出最大销售额对应的季度值和最小销售额对应的季度值,并在主函数中输出。
程序:
#include<stdio.h>
char main()
{
float max(float a,float b,float c,float d);
float min(float a,float b,float c,float d);
float a,b,c,d,m,n;
scanf("%f%f%f%f",&a,&b,&c,&d);
float max(float a,float b,float c,float d);
{
if(m==a) printf("最大销售额对应第一季度");
else if(m==b) printf("最大销售额对应第二季度");
else if(m==c) printf("最大销售额对应第三季度");
else printf("最大销售额对应第四季度");
}
float min(float a,float b,float c,float d);
{
if(n==a) printf("最小销售额对应第一季度");
else if(n==b) printf("最小销售额对应第二季度");
else if(n==c) printf("最小销售额对应第三季度");
else printf("最小销售额对应第四季度");
}
return 0;
}
float max(float a,float b,float c,float d)
{
float x,y,z,m;
x=a>b?a:b;
y=x>c?x:c;
z=y>d?y:d;
m=z;
return m;
}
float min(float a,float b,float c,float d)
{
float p,q,s,n;
p=a<b?a:b;
q=p<c?p:c;
s=q<d?q:d;
n=s;
return n;
}
调试结果:
Compiling...
a.c
D:\a.c(24) : error C2143: syntax error : missing ';' before 'type'
D:\a.c(32) : error C2143: syntax error : missing ';' before 'type'
执行 cl.exe 时出错.

a.obj - 1 error(s), 0 warning(s)
展开
 我来答
斩天及
2017-11-25 · TA获得超过8832个赞
知道大有可为答主
回答量:8460
采纳率:0%
帮助的人:3903万
展开全部

    错误比较多,你看下边的注释吧,如果还不对请追问,可行望采纳:

#include <stdio.h>//忘了加头文件

int main()

{

    int i;

    double a,b,c,d,e,f,cash;


    //这2行给你写前面了,具体原因往下看

    printf("请输入本月利润:\n");//反斜杠打错了吧?

    scanf("%d",&i);//你不先给 i 赋值,就直接使用 i ?

    a=0.1*i;


    //下边这几行有几个乘号忘了写啦

    b=100000*0.1+(i-100000)*0.075;

    c=100000*0.1+100000*0.075+(i-200000)*0.05;

    d=100000*0.1+100000*0.075+200000*0.05+(i-400000)*0.03;

    e=100000*0.1+100000*0.075+200000*0.05+200000*0.03+(i-600000)*0.015;

    f=100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.01+(i-1000000)*0.01;


    if(i<=100000)

        cash=a;

    else if(i<=200000)

        cash=b;

    else if(i<=400000)

        cash=c;

    else if(i<=600000)

        cash=d;

    else if(i<=1000000)

        cash=e;

    else if(1000000<i)

        cash=f;


    //你声明的是double类型,请使用"%lf",而不是"%f",还有最好加个回车

    printf("本月奖金应发:%10.2lf\n",cash);

    return 0;

 }


White_MouseYBZ
2017-11-24 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6346万
展开全部
  1. m、n没有赋初值就拿来使用了。

  2. 把第二个float max(float a,float b,float c,float d);和float min(float a,float b,float c,float d);删除。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2020-02-28
展开全部

1.第6行应如下:scanf("%f,%f,%f,%f",&a,&b,&c,&d);

2.不能在函数内定义函数

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2017-11-24 · TA获得超过463个赞
知道小有建树答主
回答量:598
采纳率:65%
帮助的人:275万
展开全部
error: '::main' must return 'int'
改成int就可以运行了,其他问题没仔细看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式