C++ 如何解决错误:从“转换”无效;int*”;至;int";

C++ 如何解决错误:从“转换”无效;int*”;至;int";,c++,int,C++,Int,需要一些帮助来解决这个问题。 当我编译下面的代码时,会出现以下错误: 错误:从“int*”到“int”的转换无效 我想创建一个calculatePercentage函数,这样我可以在调用它时使用该值 void calculatePercentage(int voteResult[],int percentage[]) const int NO_OF_CANDIDATE = 10; int main() { ifstream input("votes.txt"

需要一些帮助来解决这个问题。
当我编译下面的代码时,会出现以下错误:

错误:从“
int*
”到“
int
”的转换无效

我想创建一个
calculatePercentage
函数,这样我可以在调用它时使用该值

void calculatePercentage(int voteResult[],int percentage[])

const int NO_OF_CANDIDATE = 10;

int main()
    {     
        ifstream input("votes.txt",ios::in);

        string candidates[NUMBER_OF_CANDIDATE];
        int    voteResult[NUMBER_OF_CANDIDATE]; 
        int    percentage[NUMBER_OF_CANDIDATE];   

        for (int i = 0; i < NUMBER_OF_CANDIDATE; i++) {
            input >> candidates[i] >> voteResult[i];  
        } 
        calculatePercentage(voteResult, percentage); // error happened here.

        return 0;
    }

void calculatePercentage(int voteResult[],int percentage[])
{
    int totalVotes = 0;
        for (int i = 0; i < NUMBER_OF_CANDIDATE; i++) 
        {
            totalVotes += votes[i];
        }
        for (int j = 0; j < NUMBER_OF_CANDIDATE; j++) 
        {
            double wk_percentage  = static_cast<double>{votes[j])/totalVotes;
            percentage[j]=static_cast<int>(wk_percentage*100);
        }

}
void计算百分比(int voteResult[],int percentage[]
const int NO_OF_候选者=10;
int main()
{     
ifstream输入(“voces.txt”,ios::in);
字符串候选者[候选者的数量];
int voteResult[候选人人数];
整数百分比[候选人人数];
for(int i=0;i<候选数量;i++){
输入>>候选人[i]>>投票结果[i];
} 
calculatePercentage(voteResult,percentage);//此处发生错误。
返回0;
}
无效计算百分比(int voteResult[],int percentage[]
{
整数总票数=0;
for(int i=0;i<候选数量;i++)
{
总票数+=票数[i];
}
for(int j=0;j<候选数量;j++)
{
双倍工作百分比=静态投票{票数[j])/总票数;
百分比[j]=静态铸造(工作周百分比*100);
}
}

您发布的代码有一系列错误

  • calculatePercentage()定义缺少结尾“;”
  • _候选编号与_候选编号之间可能存在名称不匹配
  • 缺少#包含(使用ifstream)
  • 缺失#包括
  • 缺少std::在
    ifstream
    string
  • 投票
    未在任何地方声明(是否应该是
    voteResult
    ?)
  • static_cast{voates[j])/totalvoates;
  • 。。。 更不用说计算和参数传递的方式了

    应编译以下编辑的代码,但不确定其是否按预期工作:

    #include <fstream>
    #include <string>
    
    void calculatePercentage(int voteResult[], int percentage[]);
    
    const int NUMBER_OF_CANDIDATE = 10;
    
    int main()
    {
        std::ifstream input("votes.txt");
    
        std::string candidates[NUMBER_OF_CANDIDATE];
        int    voteResult[NUMBER_OF_CANDIDATE]; 
        int    percentage[NUMBER_OF_CANDIDATE];   
    
        for (int i = 0; i < NUMBER_OF_CANDIDATE; i++) {
            input >> candidates[i] >> voteResult[i];  
        } 
        calculatePercentage(voteResult, percentage); // error happened here.
    
        return 0;
    }
    
    void calculatePercentage(int voteResult[], int percentage[])
    {
        int totalVotes = 0;
        for (int i = 0; i < NUMBER_OF_CANDIDATE; i++) 
        {
            totalVotes += voteResult[i];
        }
        for (int j = 0; j < NUMBER_OF_CANDIDATE; j++) 
        {
            double wk_percentage  = static_cast<double>(voteResult[j]) / totalVotes;
            percentage[j] = static_cast<int>(wk_percentage*100);
        }
    }
    
    #包括
    #包括
    无效计算百分比(int voteResult[],int percentage[]);
    const int NUMBER_OF_候选者=10;
    int main()
    {
    std::ifstream输入(“vows.txt”);
    std::字符串候选者[候选者的数量];
    int voteResult[候选人人数];
    整数百分比[候选人人数];
    for(int i=0;i<候选数量;i++){
    输入>>候选人[i]>>投票结果[i];
    } 
    calculatePercentage(voteResult,percentage);//此处发生错误。
    返回0;
    }
    无效计算百分比(int voteResult[],int percentage[]
    {
    整数总票数=0;
    for(int i=0;i<候选数量;i++)
    {
    总票数+=投票结果[i];
    }
    for(int j=0;j<候选数量;j++)
    {
    双倍工作百分比=静态投票(voteResult[j])/总投票数;
    百分比[j]=静态铸造(工作周百分比*100);
    }
    }
    

    同样在。

    谢谢大家的评论。我跳过了一些语句,在发布它们时犯了一些错误。我修复了它们,如下所示。发生的唯一错误是仍然无法将“int*”从“int”转换。只是不知道如何解决它

    #include <fstream>
    #include <iostream>
    #include <iomanip>
    #include <string>
    
    using namespace std;
    
    void calculatePercentage(int voteResult[],int percentage[]);
    
    const int NUMBER_OF_CANDIDATE = 10;
    
    int main()
        {     
            ifstream input("votes.txt",ios::in);
    
    
            string candidates[NUMBER_OF_CANDIDATE];
            int    vote[NUMBER_OF_CANDIDATE]; 
            int    percentage[NUMBER_OF_CANDIDATE];   
    
            for (int i = 0; i < NUMBER_OF_CANDIDATE; i++) {
                input >> candidates[i] >> vote[i];  
            } 
            calculatePercentage(voteResult, percentage); // error happened here.
    
            return 0;
        }
    
    void calculatePercentage(int voteResult[],int percentage[])
    {
        int totalVotes = 0;
            for (int i = 0; i < NUMBER_OF_CANDIDATE; i++) 
            {
                totalVotes += votes[i];
            }
            for (int j = 0; j < NUMBER_OF_CANDIDATE; j++) 
            {
                double wk_percentage  = static_cast<double>(votes[j])/totalVotes;
                percentage[j]=static_cast<int>(wk_percentage*100);
            }
    
    }
    
    #包括
    #包括
    #包括
    #包括
    使用名称空间std;
    无效计算百分比(int voteResult[],int percentage[]);
    const int NUMBER_OF_候选者=10;
    int main()
    {     
    ifstream输入(“voces.txt”,ios::in);
    字符串候选者[候选者的数量];
    整数票[候选人人数];
    整数百分比[候选人人数];
    for(int i=0;i<候选数量;i++){
    输入>>候选人[i]>>投票[i];
    } 
    calculatePercentage(voteResult,percentage);//此处发生错误。
    返回0;
    }
    无效计算百分比(int voteResult[],int percentage[]
    {
    整数总票数=0;
    for(int i=0;i<候选数量;i++)
    {
    总票数+=票数[i];
    }
    for(int j=0;j<候选数量;j++)
    {
    双倍工作百分比=静态投票(票数[j])/总票数;
    百分比[j]=静态铸造(工作周百分比*100);
    }
    }
    
    你有一个不匹配的括号:
    静态投票{
    (100*票[j])/totalvows
    去掉所有的投票。候选人的人数是
    假设是
    没有候选人
    ?是
    投票[i]
    假设是
    投票结果[i]
    ?编译此示例会产生与问题所问问题不同的错误。太多的转录错误,而此处没有任何明显会导致所述错误的内容。请提供一个。一旦拼写错误修复,它似乎可以工作。我可以用您的注释运行它。非常感谢。您做了一个“拼写错误”:
    voteResult
    应该是
    vote
    。您应该有类似于“使用未声明的标识符'voteResult'的以前的错误”(编译器可能会使用
    int
    type to unknown变量来允许在文件中提供更多错误,以及不兼容的类型)。查看完整的生成日志,而不仅仅是恢复错误部分“。顺便说一句,这不是答案,你应该改为编辑你的帖子(但注意不要使现有答案无效)。