伙计们,请再次帮助我解决我的计划。我改变了代码的顺序。请检查我的代码有什么问题。它运行但它不执行它应该执行的任务。它应该计算用户输入的等级总数并显示相应的备注。不幸的是,它不起作用:(请帮帮我
#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;
}
答案 0 :(得分:1)
你最有可能与整数运算相冲突。注意:将整数除以另一个整数时,会得到一个整数结果(舍入为零)。
因此,您需要使用double
作为PG
和pGrade
的类型,并通过编写computePG
浮点数中的常量如30.0
,20.0
等
答案 1 :(得分:0)
你可能应该为变量“PG”使用double,这样你就可以获得足够的十进制精度。
此外,您可能希望将来避免使用全局变量,因为我猜测您是如何犯这个错误的 - 在使用它之前永远不会为w
赋值,这意味着它被分配了值编译器为0,可能是搞砸了你的结果。