我本周开始学习C,但我遇到了问题。 我试图让用户输入他想要的输入数量,但是当他输入输入-1时,循环将停止。我得到的Operand类型不兼容(“float *”和“const char *”)错误。
#include <stdio.h>
#include <stdlib.h>
void average()
{
int i;
float num[100];
float sum = 0;
float average = 0;
int n = sizeof(num)/sizeof(num[0]);
//printf("Enter the size of the array: \n");
//scanf("%d" , &n );
for (i=0 ; i<n ; i++)
{
printf("%d. Enter number: ",i+1);
scanf("%f",&num[i]);
sum+=num[i];
if (num == "-1")
{
break;
}
}
average=sum/n;
printf("Average = %.2f",average);
}
答案 0 :(得分:2)
此:
if (num == "-1")
无效,是编译器抱怨的原因。您将num
(类型为float [100]
)视为指向字符的指针(通过将其与另一个指向字符的指针进行比较)。
你的意思是:
if (num[i] == -1)
您应该在向num[i]
添加sum
之前执行此操作,因为标记值-1
不应该是总计的一部分。不需要保留输入数组,因此num
不需要成为数组。
此外,C中的字符串使用strcmp()
进行比较,几乎从不与==
进行比较。