c语言(7.12)之AI助我学习2

笨笨的我写的:

#include <stdio.h>

int main()

{

printf("请输入小诗诗的排号:\n");

int rowa;

scanf_s("%d", &rowa);

printf("请输入小诗诗的坐号:\n");

int numa;

scanf_s("%d", &numa);

printf("请输入我的排号:\n");

int rowb;

scanf_s("%d", &rowb);

printf("请输入我的坐号:\n");

int numb;

scanf_s("%d", &numb);

if ((numb == numa+1||numa -1) && rowa == rowb)

{

printf("我会开心地看电影\n");

}

else

{

printf("我会开心地打游戏\n");

}

return 0;

}

AI的回答:

您的代码中 if 语句的条件部分存在逻辑错误。您想要检查的是 numanumb 是否相差1(无论是 numanumb 大1还是小1),但您的条件表达式 numb == numa+1||numa -1 并没有正确地表达这个逻辑。

numb == numa+1||numa -1 实际上被解析为 (numb == (numa+1)) || (numa - 1)。这里,(numa - 1) 是一个表达式,但它本身并不产生布尔值(尽管在C语言中,非零值被视为真,但这里它并没有被用作条件判断的一部分)。

您应该使用逻辑运算符来组合两个条件,分别检查 numa 是否等于 numb+1numb-1。这里是修改后的代码:

复制代码

c复制代码

|---|----------------------------------------------------------------------|
| | #include <stdio.h> |
| | |
| | int main() |
| | { |
| | printf("请输入小诗诗的排号:\n"); |
| | int rowa; |
| | scanf("%d", &rowa); // 注意:这里我改为了 scanf,因为 scanf_s 是 Microsoft 特有的 |
| | |
| | printf("请输入小诗诗的坐号:\n"); |
| | int numa; |
| | scanf("%d", &numa); |
| | |
| | printf("请输入我的排号:\n"); |
| | int rowb; |
| | scanf("%d", &rowb); |
| | |
| | printf("请输入我的坐号:\n"); |
| | int numb; |
| | scanf("%d", &numb); |
| | |
| | // 检查 numa 和 numb 是否相差 1,并且 rowa 和 rowb 相等 |
| | if ((numb == numa + 1 || numb == numa - 1) && rowa == rowb) |
| | { |
| | printf("我会开心地看电影\n"); |
| | } |
| | else |
| | { |
| | printf("我会开心地打游戏\n"); |
| | } |
| | |
| | return 0; |
| | } |

在这个修改后的版本中,我使用了 || 运算符来组合两个条件 numb == numa + 1numb == numa - 1,这两个条件通过 && 运算符与 rowa == rowb 相结合。这样,只有当这两个坐号相差1并且排号相同时,才会输出"我会开心地看电影"。否则,输出"我会开心地打游戏"。

另外,请注意我将 scanf_s 改为了 scanf,因为 scanf_s 是 Microsoft Visual C++ 特有的,用于提高安全性。如果您使用的是标准的 GCC 或 Clang 编译器,应该使用 scanf。如果您的环境确实需要 scanf_s(比如在使用 Visual Studio 时),并且您已经包含了正确的头文件(如 <stdio.s_s>,但请注意这通常是特定于 Visual Studio 的),那么您可以保留 scanf_s。不过,在大多数情况下,scanf 是更通用的选择。

相关推荐
天上路人6 分钟前
采用AI神经网络降噪算法的语言降噪消回音处理芯片NR2049-P
深度学习·神经网络·算法·硬件架构·音视频·实时音视频·可用性测试
chao_78918 分钟前
手撕算法(定制整理版2)
笔记·算法
虾球xz2 小时前
游戏引擎学习第276天:调整身体动画
c++·学习·游戏引擎
虾球xz2 小时前
游戏引擎学习第275天:将旋转和剪切传递给渲染器
c++·学习·游戏引擎
AndrewHZ2 小时前
【图像处理基石】什么是油画感?
图像处理·人工智能·算法·图像压缩·视频处理·超分辨率·去噪算法
.格子衫.2 小时前
015枚举之滑动窗口——算法备赛
数据结构·算法
qq_386322693 小时前
华为网路设备学习-21 IGP路由专题-路由过滤(filter-policy)
前端·网络·学习
Despacito0o3 小时前
QMK键盘固件自定义指南 - 打造你的专属键盘体验
c语言·计算机外设·qmk
J先生x3 小时前
【IP101】图像处理进阶:从直方图均衡化到伽马变换,全面掌握图像增强技术
图像处理·人工智能·学习·算法·计算机视觉
爱coding的橙子6 小时前
每日算法刷题 Day3 5.11:leetcode数组2道题,用时1h(有点慢)
算法·leetcode