声明第二部分的功能

时间:2013-08-23 14:04:14

标签: c++

伙计们,请再次帮助我解决我的计划。我改变了代码的顺序。请检查我的代码有什么问题。它运行但它不执行它应该执行的任务。它应该计算用户输入的等级总数并显示相应的备注。不幸的是,它不起作用:(请帮帮我

#include<iostream>
#include<conio.h>

using namespace std;

void computePG(int& PG);
void Remark(int PG);

    int x, y, z, w, p;
    int prelimGrade,yourRemark,PG;
    int preliminaryGrade; 

int main()
{
    int pGrade;

 cout<<"Programmed by: Katrina G. Gozo, 1ISC";
 cout<<endl<<"\nDate: Aug. 23,2013";
 cout<<endl<<"\nThis program intends to compute the PG and make the necessary remarks";

 cout<<"\n\nPlease enter your score on quiz 1 ";
 cin>>x;

 cout<<"\nPlease enter your score on quiz 2 ";
 cin>>y;

 cout<<"\nPlease enter your score on quiz 3 ";
 cin>>z;

 cout<<"\nPlease enter your score on prelims ";
 cin>>p;


computePG(pGrade);
Remark(pGrade);


getch();
}

void computePG(int& PG)
{
    PG = x/30 * 20 + y/50 * 20 + z/40 * 20 + w/100 * 40;
    cout << "\nYour prelim grade is " << PG;

} 

void Remark(int PG)
{
     if (PG>=90)
        cout<<"A." <<endl;
     else if (PG>=80)
          cout<<"B."<<endl;
     else if (PG>=70)
          cout<<"C."<<endl;
     else if (PG>=60)
          cout<<"D."<<endl;
     else 
          cout<<"E."<<endl;
}

2 个答案:

答案 0 :(得分:1)

你最有可能与整数运算相冲突。注意:将整数除以另一个整数时,会得到一个整数结果(舍入为零)。

因此,您需要使用double作为PGpGrade的类型,并通过编写computePG浮点数中的常量如30.020.0

答案 1 :(得分:0)

你可能应该为变量“PG”使用double,这样你就可以获得足够的十进制精度。

此外,您可能希望将来避免使用全局变量,因为我猜测您是如何犯这个错误的 - 在使用它之前永远不会为w赋值,这意味着它被分配了值编译器为0,可能是搞砸了你的结果。