鱼C论坛

 找回密码
 立即注册
查看: 6186|回复: 36

[已解决]初学者case标签只能在开关内使用

[复制链接]
发表于 2022-2-7 21:53:52 | 显示全部楼层 |阅读模式

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

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

x

第一次学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 22:02:13
  1. switch (c);
复制代码

改成
  1. switch (c)
复制代码

你多了个分号

你是新鱼友,不能发图片
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-2-7 21:57:28 | 显示全部楼层
怎么在发帖的时候发图片呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-7 21:58:12 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-7 22:02:13 | 显示全部楼层    本楼为最佳答案   
  1. switch (c);
复制代码

改成
  1. switch (c)
复制代码

你多了个分号

你是新鱼友,不能发图片
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-7 22:06:03 | 显示全部楼层
如果你的代码警告:
  1. a.c: In function 'main':
  2. a.c:8:5: warning: implicit declaration of function 'scanf_s'; did you mean 'scanf'? [-Wimplicit-function-declaration]
  3.     8 |     scanf_s("%lf%c%lf", &a, &c, &b); // double型要用%lf,
  4.       |     ^~~~~~~
  5.       |     scanf
复制代码


那就把 scanf_s 改成 scanf。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-7 22:08:41 | 显示全部楼层
悬赏的话

如何悬赏

如何悬赏
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-7 22:12:23 | 显示全部楼层
switch (c)这里后面没分号
case '+': case后面得加一个空格分隔开
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-7 22:40:16 | 显示全部楼层
  1. #include <stdio.h>

  2. int main() // Warning Codes:C4098 'main': 'void' function returning a value
  3. {
  4.     double a, b;
  5.     char c;
  6.     printf("输入表达:a+(-,*,/)b\n");
  7.     scanf_s("%lf%c%lf", &a, &c, 1, &b); // Warnings Codes:C6270、C6273、C4477、C4473
  8.     switch (c) // <---------- 注意这里 ----------
  9.     {
  10.         case'+':
  11.             printf("%lf\n", a + b);
  12.             break;
  13.         case '-':
  14.             printf("%lf\n", a - b);
  15.             break;
  16.         case '*':
  17.             printf("%lf\n", a * b);
  18.             break;
  19.         case '/':
  20.             printf("%lf\n", a / b);
  21.             break;
  22.         default:
  23.             printf("请输入一个正确的格式");
  24.     }
  25.     return 0;
  26. }
复制代码

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
ckblt + 1 + 1 鱼C有你更精彩^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

 楼主| 发表于 2022-2-8 10:51:49 | 显示全部楼层
ckblt 发表于 2022-2-7 22:02

改成
你多了个分号

太谢谢了,第一次来这里,有人回复我,真的对我帮助太大了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-8 10:54:26 | 显示全部楼层
ckblt 发表于 2022-2-7 22:06
如果你的代码警告:

那就把 scanf_s 改成 scanf。

我用的vs2019.微软为了安全,把scanf全弄成了scanf_s
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-8 10:55:26 | 显示全部楼层

谢谢,谢谢。第一次来,请多指教
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-8 10:56:27 | 显示全部楼层
2736946915 发表于 2022-2-7 22:12
switch (c)这里后面没分号
case '+': case后面得加一个空格分隔开

谢谢,你的回答真的让我有走下去的信心,我不是一个人。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-8 10:57:12 | 显示全部楼层
哦,我用的是MinGW,不知道为啥,把scanf_s警告了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-8 10:58:11 | 显示全部楼层

还没有学到return 0
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-8 10:59:11 | 显示全部楼层

谢谢啦,大家都好热情
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-8 11:02:23 | 显示全部楼层

在 main 函数里,return 0 是运行没问题的意思:
  1. int main()
  2. {
  3.     return 0;
  4. }
复制代码

你这样也可以:
  1. void main()
  2. { // 如果你 void main() 的话,你不能 return 0。
  3. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-8 11:10:44 | 显示全部楼层

现在好像不行,是因为我才来吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-8 11:11:50 | 显示全部楼层
丘陵山地 发表于 2022-2-8 11:10
现在好像不行,是因为我才来吗

可能吧,我去看一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-8 11:12:47 | 显示全部楼层
丘陵山地 发表于 2022-2-8 11:10
现在好像不行,是因为我才来吗

对的,你是新鱼友,不能悬赏
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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?一脸懵逼呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-25 02:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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