丘陵山地 发表于 2022-2-7 21:53:52

初学者case标签只能在开关内使用


第一次学c语言,照着小甲鱼的写代码,就是运行不了。

#include<stdio.h>

void main()
{
        double a, b;//double的精度比浮点型要高
        char c;
        printf("输入表达:a+(-,*,/)b\n");
        scanf_s("%lf%c%lf",&a,&c,&b);//double型要用%lf,
        switch (c);
        {
        case'+':
                printf("%lf\n", a + b);
                break;
        case '-':
                printf("%lf\n", a - b);
                break;
        case '*':
                printf("%lf\n", a * b);
                break;
        case '/':
                printf("%lf\n", a / b);
                break;
        default:printf("请输入一个正确的格式");
        }
}




b站小甲鱼这个知识点 的链接https://fishc.com.cn/home.php?mod=misc&ac=emailcheck&hash=0cb5NOBSUpWE27PoWxQDLXlMgyaklyh3hiN0GyzGcBxhY6tRYeDAiNGE7IFq415kCyORtXV83uSba5kbia9QHBRhnD65GcLypqOxRA


第一次发帖,怎么悬赏呀

丘陵山地 发表于 2022-2-7 21:57:28

怎么在发帖的时候发图片呀

丘陵山地 发表于 2022-2-7 21:58:12

链接错了应该是这个
https://www.bilibili.com/video/BV1x7411M74h?p=14&spm_id_from=pageDriver

ckblt 发表于 2022-2-7 22:02:13

把switch (c);
改成switch (c)
你多了个分号

你是新鱼友,不能发图片

ckblt 发表于 2022-2-7 22:06:03

如果你的代码警告:a.c: In function 'main':
a.c:8:5: warning: implicit declaration of function 'scanf_s'; did you mean 'scanf'? [-Wimplicit-function-declaration]
    8 |   scanf_s("%lf%c%lf", &a, &c, &b); // double型要用%lf,
      |   ^~~~~~~
      |   scanf

那就把 scanf_s 改成 scanf。

ckblt 发表于 2022-2-7 22:08:41

悬赏的话

2736946915 发表于 2022-2-7 22:12:23

switch (c)这里后面没分号
case '+': case后面得加一个空格分隔开

傻眼貓咪 发表于 2022-2-7 22:40:16

#include <stdio.h>

int main() // Warning Codes:C4098 'main': 'void' function returning a value
{
    double a, b;
    char c;
    printf("输入表达:a+(-,*,/)b\n");
    scanf_s("%lf%c%lf", &a, &c, 1, &b); // Warnings Codes:C6270、C6273、C4477、C4473
    switch (c) // <---------- 注意这里 ----------
    {
      case'+':
            printf("%lf\n", a + b);
            break;
      case '-':
            printf("%lf\n", a - b);
            break;
      case '*':
            printf("%lf\n", a * b);
            break;
      case '/':
            printf("%lf\n", a / b);
            break;
      default:
            printf("请输入一个正确的格式");
    }
    return 0;
}

丘陵山地 发表于 2022-2-8 10:51:49

ckblt 发表于 2022-2-7 22:02

改成
你多了个分号


太谢谢了{:10_254:},第一次来这里,有人回复我,真的对我帮助太大了

丘陵山地 发表于 2022-2-8 10:54:26

ckblt 发表于 2022-2-7 22:06
如果你的代码警告:

那就把 scanf_s 改成 scanf。

我用的vs2019.微软为了安全,把scanf全弄成了scanf_s{:10_329:}

丘陵山地 发表于 2022-2-8 10:55:26

ckblt 发表于 2022-2-7 22:08
悬赏的话

谢谢,谢谢。第一次来,请多指教{:10_332:}

丘陵山地 发表于 2022-2-8 10:56:27

2736946915 发表于 2022-2-7 22:12
switch (c)这里后面没分号
case '+': case后面得加一个空格分隔开

谢谢,你的回答真的让我有走下去的信心,我不是一个人。

ckblt 发表于 2022-2-8 10:57:12

哦,我用的是MinGW,不知道为啥,把scanf_s警告了。

丘陵山地 发表于 2022-2-8 10:58:11

傻眼貓咪 发表于 2022-2-7 22:40


还没有学到return 0{:10_328:}

丘陵山地 发表于 2022-2-8 10:59:11

傻眼貓咪 发表于 2022-2-7 22:40


谢谢啦,大家都好热情

ckblt 发表于 2022-2-8 11:02:23

丘陵山地 发表于 2022-2-8 10:58
还没有学到return 0

在 main 函数里,return 0 是运行没问题的意思:
int main()
{
    return 0;
}
你这样也可以:
void main()
{ // 如果你 void main() 的话,你不能 return 0。
}

丘陵山地 发表于 2022-2-8 11:10:44

ckblt 发表于 2022-2-7 22:08
悬赏的话

现在好像不行,是因为我才来吗{:10_255:}

ckblt 发表于 2022-2-8 11:11:50

丘陵山地 发表于 2022-2-8 11:10
现在好像不行,是因为我才来吗

可能吧,我去看一下

ckblt 发表于 2022-2-8 11:12:47

丘陵山地 发表于 2022-2-8 11:10
现在好像不行,是因为我才来吗

对的,你是新鱼友,不能悬赏

丘陵山地 发表于 2022-2-8 11:35:42

ckblt 发表于 2022-2-8 11:12
对的,你是新鱼友,不能悬赏

又出错了
警告        C6270        缺少“scanf_s”的浮点型参数: 添加一个对应于转换说明符“4”的浮点型参数。       
scanf_s("%lf%c%lf",&a,&c,&b);这是我写的,它警告一堆问题
scanf_s("%lf%c%lf",&a,&c,1,&b);这是我看7楼写的,加了个1就正确了,why?一脸懵逼呀
页: [1] 2
查看完整版本: 初学者case标签只能在开关内使用