奘-重出江湖 发表于 2022-4-17 22:18:51

新手求助Switch函数

#include <stdio.h>

int main()
{
       
        float a,b;
       
        printf("请输入两个数(用空格隔开):");
        scanf("%f %f",&a,&b) ;
       
        switch(a&&b !=0)
        {
                case a > b: printf("%f %f\n",a,b);
                                  break;
                case a < b: printf("%f %f\n",b,a);
                                    break;
                default: printf("两个数字相同。\n");
                                  break;
        }
       
        return 0;
}
运行报错,跪求指导{:10_266:}

wp231957 发表于 2022-4-17 22:23:11

switch不能这么玩,楼主想当然了,建议百度

Gacy 发表于 2022-4-17 22:31:22

case不是这么写的

zzxhh628 发表于 2022-4-18 00:35:05

本帖最后由 zzxhh628 于 2022-4-18 00:37 编辑

switch不是函数,它是个C\C++的关键字,case后面只能是常量,不可以是范围、变量或者其他表达式。你代码中的写法不正确,也就是说switch根本不能那么用,你case后面那个表达式不是一个常量,所以无法编译。

yzzc 发表于 2022-4-18 08:53:30

switch(a&&b !=0)
      {
                case a > b: printf("%f %f\n",a,b);   //case 后面接常量,不能接表达式,变量。a>b是个表达式,程序肯定会报错的
                                    break;
                case a < b: printf("%f %f\n",b,a);
                                    break;
                default: printf("两个数字相同。\n");
                                    break;
      }

0412zc 发表于 2022-4-19 12:42:22

syntax不对,用 if 写更简单。
页: [1]
查看完整版本: 新手求助Switch函数