语言 C 代码中有一个错误,但我无法弄清楚它在哪里



此代码的目标是显示输入中每个字母的频率或使用量,但是当我单击编译时,有一个错误显示

main.c:50:19: error: invalid operands to binary * (have 'float *' and 'int')"
    avg = freq*100/count;    

法典

#include <stdio.h>
#include <ctype.h>
#include <float.h>
int main()
{
    char alp;
    float count, i, avg;
    float freq[26];

    printf("Enter the alphabet : ");
    scanf("%c", &alp);
    do{
        printf("Enter the alphabet : ");
        scanf("%c", &alp);
        switch(alp) {
            case 'a' :freq[0]++; break;
            case 'b' :freq[1]++; break;
            case 'c' :freq[2]++; break;
            case 'd' :freq[3]++; break;
            case 'e' :freq[4]++; break;
            case 'f' :freq[5]++; break;
            case 'g' :freq[6]++; break;
            case 'h' :freq[7]++; break;
            case 'i' :freq[8]++; break;
            case 'j' :freq[9]++; break;
            case 'k' :freq[10]++; break;
            case 'l' :freq[11]++; break;
            case 'm' :freq[12]++; break;
            case 'n' :freq[13]++; break;
            case 'o' :freq[14]++; break;
            case 'p' :freq[15]++; break;
            case 'q' :freq[16]++; break;
            case 'r' :freq[17]++; break;
            case 's' :freq[18]++; break;
            case 't' :freq[19]++; break;
            case 'u' :freq[20]++; break;
            case 'v' :freq[21]++; break;
            case 'w' :freq[22]++; break;
            case 'x' :freq[23]++; break;
            case 'y' :freq[24]++; break;
            case 'z' :freq[25]++; break;
            default :;}
        count++;
    }while (alp==-1);
    for( i = 0; i < 26; i = i + 1 ){
        avg = freq*100/count;
        printf("%c : %f", i+65, avg);
    }

    return 0;
}
顺便说一句,我

不是计算机科学专业的学生,所以如果我犯了一个愚蠢的错误,请不要评判我。

你有这个代码...

avg = freq*100/count;

。freq 是一个数组,所以它应该是

avg = freq[i]*100/count;

您缺少以下行中的数组索引:

avg = freq*100/count;

它应该是:

avg = freq[i]*100/count;

数组指针不能乘:)

这里的freq是浮点数数组。 数组名称是指向第一个位置的内存位置的指针,即 freq 指向 freq[0]。

因此,当您使用"avg = freq*100/count;"时,频率是(float*(,它期望float。 所以使用频率[i]

此代码中有多个错误:1( 您使用单位化变量:

float count=0, avg=0;

2( avg 是一个数组

 avg = freq[i]*100/count;

3(i 是一个浮点数,但你想要一个整数(或只是一个字符(

char i=0;
4( while (

apl==-1( 不正确,do while 将始终终止(除非会出现错误。

while(apl!=-1)

最新更新