注册 登录
编程论坛 C语言论坛

新人初学,求大佬。找了好久不知道怎么改

半知 发布于 2020-11-27 16:59, 1039 次点击
#include "stdio.h"
void main()
{
char ltype;
float reapt;
printf("请输入论文类型:(A代表本科 B硕士 C博士 D一般论文)");
printf("请输入论文重复率;(0到1)");
scanf("%c", &ltype);
scanf("%f", &reapt);
if(ltype=='A')
printf("本科");  
{if(reapt>0.3)
        printf("该本科论文不合格");
    else
        printf("该本科论文合格");}

else if(ltype=='B')
   printf("硕士");

{if(reapt>0.25)
        printf("该硕士论文不合格");
    else
        printf("该硕士论文合格");}

else if(ltype=='C')
   printf("博士");

{if(reapt>0.2)
        printf("该博士论文不合格");
    else
        printf("该博士论文合格");}

else if(ltype=='D')
   printf("一般论文");

{if(reapt>0.3)
        printf("该一般论文论文不合格");
    else
        printf("该一般论文论文合格");}

else
printf("输入错误");
}
2 回复
#2
忽左忽右2020-11-28 21:12
你的问题是吧if判断语句下面的花括号标错了位置。修改后的代码如下:
#include "stdio.h"
void main()
{
char ltype;               //论文类型
float reapt;              //论文重复率
printf("请输入论文类型:(A代表本科 B硕士 C博士 D一般论文)");
scanf("%c", &ltype);

printf("请输入论文重复率;(0到1)");
scanf("%f", &reapt);

if(ltype=='A')
{printf("本科");                            //花括号应该放在这里

if(reapt>0.3)
        printf("该本科论文不合格");
    else
        printf("该本科论文合格");}

else if(ltype=='B')
   {printf("硕士");                           //花括号应该放在这里

if(reapt>0.25)
        printf("该硕士论文不合格");
    else
        printf("该硕士论文合格");}

else if(ltype=='C')
   {printf("博士");                          //花括号应该放在这里

if(reapt>0.2)
        printf("该博士论文不合格");
    else
        printf("该博士论文合格");}

else if(ltype=='D')
   {printf("一般论文");                      //花括号应该放在这里

if(reapt>0.3)
        printf("该一般论文论文不合格");
    else
        printf("该一般论文论文合格");}

else
printf("输入错误");
}
#3
风过无痕19892020-11-29 00:08
回复 楼主 半知
主要是花括号的位置不正确。其他的地方,帮你作了一些调整
程序代码:

#include "stdio.h"
void main()
{
    char ltype;
    float reapt;
    printf("请输入论文类型:(A博士 B硕士 C本科 D一般论文): ");  // 博士的位置与本科互换(包括后面相应的语句)
    scanf("%c", &ltype);                                          // 此语句调前了一句,不然让人丈二和尚摸不着头脑
    printf("请输入论文重复率;(0到1): ");
    scanf("%f", &reapt);
    if (ltype == 'A')
    {
        printf("博士:");
        if (reapt > 0.2)
            printf("该博士论文不合格\n");                         // 加上回车换行符(下同)
        else
            printf("该博士论文合格\n");
    }

    else if (ltype == 'B')
    {
        printf("硕士:");
        if (reapt > 0.25)
            printf("该硕士论文不合格\n");
        else
            printf("该硕士论文合格\n");
    }

    else if (ltype == 'C')
    {
        printf("本科:");
        if (reapt > 0.3)
            printf("该本科论文不合格\n");
        else
            printf("该本科论文合格\n");
    }

    else if (ltype == 'D')
    {
        printf("一般论文:");
        if (reapt > 0.3)
            printf("该一般论文论文不合格\n");
        else
            printf("该一般论文论文合格\n");
    }
    else
        printf("输入错误\n");
}
1