首页 > 解决方案 > 在函数“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为什么我试图理解但没有错误并且它不打印我输入的字符串

标签: c

解决方案


引用C11,第 6.5.5 章

运算符的操作数%应为整数类型。

num是一个浮点变量。您可能需要 fmod()改用。

也就是说,

 scanf("%f", num);

是错误的,您需要为 a 提供地址float,而不是float变量本身。至少你需要

 scanf("%f", &num);

把成功和健全性检查放在一边。


推荐阅读