c - 在函数“main”中:错误:二进制 % 的操作数无效(具有“float”和“int”)
问题描述
这是一个简单的程序,它添加给定数字的数字
#include <stdio.h>
#include <conio.h>
void main()
{
float sum = 0, num;
printf("Enter any number\n");
scanf("%f", num);
while(num!=0)
{
sum = sum + (num%10);
num = num/10;
}
printf("Addition of digits of %d is %d", num, sum);
getch();
}
它向我抛出了这个错误
在函数'main'中:错误:二进制%的无效操作数(有'float'和'int')idk为什么我试图理解但没有错误并且它不打印我输入的字符串
解决方案
引用C11
,第 6.5.5 章
运算符的操作数
%
应为整数类型。
num
是一个浮点变量。您可能需要 fmod()
改用。
也就是说,
scanf("%f", num);
是错误的,您需要为 a 提供地址float
,而不是float
变量本身。至少你需要
scanf("%f", &num);
把成功和健全性检查放在一边。
推荐阅读
- android - Android Studio - 移除的依赖不会从外部库中移除
- ffmpeg - 作为服务运行时,ffmpeg -hls_time 选项无法正常工作
- android - 我可以在一个 HTTP 请求中从谷歌距离矩阵 api 获取所有数据吗?
- swift - 带有自动布局的 uiscrollview 的动态内容未按预期工作
- php - 未捕获的 ArgumentCountError。分解意义
- php - PSR-4 自动加载选项没有在我的项目中加载类?
- c# - 脚本任务 C# 中的命令超时
- google-cloud-platform - 是否可以使用 gcloud CLI 启动 GCP 市场条目?
- d3.js - D3 力有向图 - 如何过滤节点和关联链接?
- react-native - 在 React-Native 上实现 Google Cloud Speech-to-Text