我刚开始用C编程,在运行程序时发现了一个问题。错误如下resto == a % b:
[错误] 在 C 中将“float”和“float”类型的无效操作数转换为二进制“operator%”
#include<stdio.h>
#include <math.h>
char n;
int main (){
printf ("Programma che svolge ogni tipo di operazione aritmetica tra 2 numeri a e b\n'n' per chiudere\nPremere 'invio' per continuare\n");
float a, b, somma, differenza, prodotto, quoziente;
int resto;
while (n=getchar()!='n'){
printf ("Inserisci a\n");
scanf ("%f",&a);
printf ("Inserisci b\n");
scanf ("%f",&b);
somma = a + b;
differenza = a - b;
prodotto = a * b;
quoziente = a / b;
resto = a % b;
printf ("somma = %f + %f = %f\n",a,b,somma);
printf ("differenza = %f - %f = %f\n",a,b,differenza);
printf ("prodotto = %f * %f = %f\n",a,b,prodotto);
printf ("quoziente = %f / %f = %f\n",a,b,quoziente);
printf ("resto = %f %% %f = %d\n",a,b,resto);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
那里的解决方案:
错误如下,' resto == a % b' ;
那是因为模运算符%不能应用于floator double。当整数类型被除以时,它的意思是得到余数。与或一起使用时,它没有任何意义。xyfloatdouble
此外,通过Draco18s发现,这resto == a % b是不是你想要的,即使a和b是整数类型。的==是逻辑运算符,从而表达将产生的临时值1(对于真)和0其它。但是根本没有分配该临时值resto。您需要改用赋值运算符=。
| 归档时间: |
|
| 查看次数: |
40036 次 |
| 最近记录: |