鱼C论坛

 找回密码
 立即注册
查看: 1924|回复: 26

[已解决]代码错误

[复制链接]
发表于 2020-9-21 12:56:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
int main()
{
    int a,b,c,max;
    scanf("%d %d %d", &a,&b,&c); // 这里是双引号 
    if (a > b && a > c)
    {
        max = a;
    }
    else {
        if (b > c) {
            max = b;
        }
        else {
            max = c;
        }
    }
    printf("%d", max);
    return 0;
}
最佳答案
2020-9-25 19:35:04
#include <stdio.h>

int main(void){
    int x;
    double grade;
    scanf("%d %lf",&x,&grade);
    switch((int)(1.0*grade/x*10)){
        case 0:
        case 1:
            printf("E");
            break;
        case 2:
        case 3:
            printf("D");
            break;
        case 4:
        case 5:
            printf("C");
            break;
        case 6:
        case 7:
            printf("B");
            break;
        default :
            printf("A");
    }
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-9-21 12:57:16 | 显示全部楼层
发错代码了,再来一次
#include<stdio.h>
int main()
{
  int a,b;
  scanf("%d %d",&a,&b);
  switch{
    case (b>=a*0.8):
  printf("A");
      case(b<0.8*a&&b>=0.6*a):
      printf("B");
      
      case(b<0.6*a&&b>=0.4*a):
      printf("C");
case(b<0.4*a&&b>=0.2*a):
      printf("D");
      
  case(b<0.2a&&b>=0):
      printf("E");
return 0;
  
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-21 13:10:48 | 显示全部楼层
我又改正了一次,不知道为啥错
#include<stdio.h>
int main()
{
  int a,b;
  scanf("%d %d",&a,&b);
  switch(b){
    case (b>=a*0.8):
  printf("A");
      break;
      case(b<0.8*a&&b>=0.6*a):
      printf("B");
      break;
      
      case(b<0.6*a&&b>=0.4*a):
      printf("C");
      break;
case(b<0.4*a&&b>=0.2*a):
      printf("D");
      break;
      
  case(b<0.2a&&b>=0):
      printf("E");
      break;
  }
return 0;
}

    
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-21 13:15:36 | 显示全部楼层
swicth 的语法错误,不能这么用
case 后面是switch()括号中表达式/变量可能出现的值,而不是条件表达式。
条件表达式的值要么是1要么是0
switch(表达式/变量)
{
    case  值1 :
         。。。
         break;
    case  值2 :
         。。。
         break;
    case  值3 :
         。。。
         break;
    case  值4 :
         。。。
         break;
    case  值5 :
         。。。
         break;
    default :
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-21 14:14:42 | 显示全部楼层
4399king 发表于 2020-9-21 13:10
我又改正了一次,不知道为啥错

switch() 函数里的 b 是个不确定的数,不便使用此函数,使用 if ... else if ... else 的语句比较合适;

switch() 函数是一个开关函数,对应的是 1、2、3、4、5、6 ... 各种情况;

case 若是多个语句组成的语句体,需要用花括号括起来,之后,用 break 中断本次选择,若没有 break 语句,程序将按顺序往下执行后面的各条语句。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-21 15:22:27 | 显示全部楼层
改成条件语句就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-22 05:54:28 | 显示全部楼层
jhanker 发表于 2020-9-21 15:22
改成条件语句就可以了

题目要求用switch
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-22 09:21:44 | 显示全部楼层

看看题目
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-22 09:39:59 | 显示全部楼层

在我的相册里
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-22 09:49:52 | 显示全部楼层
本帖最后由 4399king 于 2020-9-22 10:01 编辑

#include<stdio.h>
int main()
{
&#160; int a,b,c;
&#160; scanf("%d %d",&a,&b);

&#160;&#160;&#160; if (b>=0&&b<0.2*a){
c=5;
}
&#160;
&#160;&#160;&#160;&#160;&#160;  else if(b<0.8*a&&b>=0.6*a){

c=2;}
&#160;&#160;&#160;&#160;&#160;
&#160;&#160;&#160;&#160;&#160;
&#160;&#160;&#160;&#160;&#160;  else if(b<0.6*a&&b>=0.4*a){
c=3;
}
else if(b<0.4*a&&b>=0.2*a){

c=4;
}
&#160;&#160;&#160;&#160;&#160;
&#160;&#160;&#160;&#160;&#160;
&#160; else{
c=1;
}
switch(c){
case 1:printf("A");break;
case 2:printf("B");break;
case 3:printf("C");break;
case 4:printf("D");break;
default:printf("E");break;
}
&#160;&#160;&#160;&#160;&#160;
return 0;
&#160;
}


把&#160删掉就是我的代码,可还是不行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-22 09:53:59 | 显示全部楼层
xieglt 发表于 2020-9-21 13:15
swicth 的语法错误,不能这么用
case 后面是switch()括号中表达式/变量可能出现的值,而不是条件表达式。
...

正解+1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-22 10:16:33 | 显示全部楼层
本帖最后由 xieglt 于 2020-9-22 10:22 编辑
#include<stdio.h>

int main()
{
        int a;
        double b;
        long flag = 0;
        
        scanf("%d,%lf",&a,&b);

        if(a == 0)
        {
                printf("input error!\n");
                return -1;
        }

        b /= a;
        
        flag = (long)(b * 10);
        
        switch(flag)
        {
                case 10 :
                case 9 :
                case 8 :
                        printf("A");
                        break;
                case 7 :
                case 6 :
                        printf("B");
                        break;
                case 5 :
                case 4 :
                        printf("C");
                        break;
                case 3 :
                case 2 :
                        printf("D");
                        break;
                case 1:
                case 0:
                        printf("E");
                        break;
                default :
                       printf("Input error!\n");
                
        }

        printf("\n");
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-22 12:36:53 | 显示全部楼层

大神,题目在我相册里,您能看看不,您的代码小弟有点看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-22 12:39:00 | 显示全部楼层

比如b/=a没看懂,还有b*10并强制转换成long不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-22 13:16:42 | 显示全部楼层
4399king 发表于 2020-9-22 12:39
比如b/=a没看懂,还有b*10并强制转换成long不懂

b/=a 等价于 b = b / a,就是说,将 b / a 的结果,再赋回给 b 这个变量;

(long)b*10 这是强制转换类型的做法,因为定义的 b 是 double 类型。类似的做还有:(int)b*10,(char)b*10 分别是强制转换为整型和字符型
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-22 13:43:09 | 显示全部楼层
4399king 发表于 2020-9-22 12:39
比如b/=a没看懂,还有b*10并强制转换成long不懂

假设输入100,95.5
那么 a = 100 , b = 95.5
b /= a 相当于 b = b/a 即 b = 95.5 / 100 = 0.955
flag = (long)(b * 10) 是把 b*10 强制转换为long 类型
b*10 =9.55,flag = (long)9.55 相当于去掉小数 即 flag = 9
这样就可以直接用switch 来根据flag的值做出相应操作了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-22 16:17:20 | 显示全部楼层
4399king 发表于 2020-9-22 12:36
大神,题目在我相册里,您能看看不,您的代码小弟有点看不懂

在你相册里,你得发出来大家才能看得到呀

工具.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-23 22:09:29 | 显示全部楼层

如果这个题目要求用 switch() 函数,那你的表述就是有问题的。能否将原题目展示出示出来,或告诉我们是哪里的题目,我们打开链接,前去验证
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-25 07:42:05 | 显示全部楼层
附加到附件

题目

题目
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-25 16:39:16 | 显示全部楼层
风过无痕1989 发表于 2020-9-22 16:17
在你相册里,你得发出来大家才能看得到呀

好像是等级不够发不了图片吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 23:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表