#include<iostream>
using namespace std;
void convertWeight(double ounces, double grams, int pounds, int kilograms);
double output(double ounces, int pounds);
int main()
{
double ounces, grams;
int pounds, kilograms;
char answer;
do
{
cout << "Enter weight in pounds and ounces: " << endl;
cin >> pounds >> ounces;
cout << output(pounds, ounces) << endl;
cout << "Do you want to test again (y/n)?: " << endl;
cin >> answer;
}while (answer == 'y' || answer == 'Y');
return 0;
}
double output(double ounces, int pounds)
{
double grams;
int kilograms;
convertWeight(ounces, grams, pounds, kilograms);
cout << pounds << "pounds and " << ounces << "ounces = " << kilograms << "kilograms and " << grams << " grams." << endl;
return 0;
}
void convertWeight(int pounds, double ounces, int &kilograms, double &grams)
{
double temp = (pounds + ounces/16)/2.2046
kilograms = temp;
grams = (temp - kilograms) * 1000;
}
さて、ポンドとオンスをキログラムとグラムに変換するプログラムを書こうとしています。ポンドとキログラムを int 型として、オンスとグラムを double 型として持つ必要があります。ここでやったことのない何かがあるような気がします。ドライバー プログラムを使用して、値渡しパラメーターと参照渡しパラメーターの両方で関数を呼び出そうとしています。プログラムをコンパイルしたところ、これまでに見たことのないエラーの最長のリストが表示され、これまでに見たことのないエラーもあります。私が持っているべきプログラムに追加していないのは何ですか?
ここに私の次のエラーリストがあります:
warning C4244: 'argument' : conversion from 'double' to 'int', possible loss of data
warning C4101: 'kilograms' : unreferenced local variable
warning C4101: 'grams' : unreferenced local variable
error C2146: syntax error : missing ';' before identifier 'kilograms'
warning C4244: '=' : conversion from 'double' to 'int', possible loss of data