操作数类型不兼容(“float *”和“const char *”)

时间:2016-01-14 10:48:41

标签: c operands

我本周开始学习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);

    }

1 个答案:

答案 0 :(得分:2)

此:

if (num == "-1")

无效,是编译器抱怨的原因。您将num(类型为float [100])视为指向字符的指针(通过将其与另一个指向字符的指针进行比较)。

你的意思是:

if (num[i] == -1)

您应该在向num[i]添加sum之前执行此操作,因为标记值-1不应该是总计的一部分。不需要保留输入数组,因此num不需要成为数组。

此外,C中的字符串使用strcmp()进行比较,几乎从不与==进行比较。