C++ C++;数组函数与操作
好的,我有一个课堂实验作业,要做一个程序,这个程序要做很多事情: 1.名为convertWeight的空洞函数将磅(int型)和盎司的重量转换为千克(int型)和克的等效重量C++ C++;数组函数与操作,c++,arrays,C++,Arrays,好的,我有一个课堂实验作业,要做一个程序,这个程序要做很多事情: 1.名为convertWeight的空洞函数将磅(int型)和盎司的重量转换为千克(int型)和克的等效重量 一个名为showArray的void函数,它接受两个参数:一个基类型为int的数组参数,一个用于数组参数大小的值调用参数。此函数只打印数组参数的所有元素,其中两个连续元素由水平选项卡分隔 在main()函数定义中,执行以下操作: a。声明一个名为磅的数组,该数组包含10个整数,将其前3个元素初始化为以下值:1、5、10,并
#include <iostream>
using namespace std;
void convertWeight(int pounds, double ounces, int& kg, double& grams);
//Preconditions: parameters pounds and ounces are nonnegative numbers, representing a weight in pounds and ounces
//Postcondition: parameters kg and grams will be set to values of the equivalent weight in kilograms and grams
void showArray(int pounds[10]);
int main()
{
int pounds[10]={1, 5, 10}, i, a, kg;
double ounces, grams;
cout << "Enter 7 additional weights in pounds: \n";
cin >> pounds[3];
for(i = 4; i < 10; i++)
{
cin >> pounds[i];
}
cout << "The entire list of weights: \n";
showArray(pounds[10]);
for(a = 0; a < 10; a++)
{
pounds = pounds[a];
convertWeight(pounds, ounces, kg, grams);
cout << pounds[a] << " pounds = " << kg << " kgs and " << grams << " grams";
}
return 0;
}
void showArray(int pounds[10])
{
cout << pounds[0] << " " << pounds[1] << " " << pounds[2] << " " << pounds[3] << " " << pounds[4] << " " << pounds[5] << " "
<< pounds[6] << " " << pounds[7] << " " << pounds[8] << " " << pounds[9] << " " << pounds[10] << " " ;
}
//Do NOT modify this function definition
void convertWeight(int pounds, double ounces, int& kg, double& grams)
{
const double KGS_PER_POUND = 0.45359237;
const double OUNCES_PER_POUND = 16.0;
const double GRAMS_PER_KG = 1000.0;
double totalKgs;
totalKgs = (pounds + ounces/OUNCES_PER_POUND)*KGS_PER_POUND;
kg = static_cast<int>(totalKgs);
grams = (totalKgs - kg)*GRAMS_PER_KG;
}
任何帮助givin都将不胜感激
c:\users\mackiller\documents\VisualStudio2010\projects\lab12\lab12\lab12.cpp(30):错误C2664:“showArray”:
无法将参数1从“int”转换为“int[]”1>从整数类型转换为指针类型需要 重新解释_类型转换、C类型转换或功能类型转换 问题就在这里
showArray(pounds[10]);
如果不传递数组,它将尝试访问数组的第11个元素(并调用未定义的行为),然后将其传递给showArray
(以指针作为参数)。你想在那里做的是:
showArray(pounds);
1> c:\users\mackiller\documents\visual studio
2010\projects\lab12\lab12\lab12.cpp(34):错误C2440:“=”:无法
从“int”转换为“int[10]”1>没有转换
到数组类型,尽管存在到引用或
指向数组的指针
这个问题在这里:
pounds = pounds[a];
您正试图将int
分配给数组。你根本不需要那句话:
convertWeight(pounds[a], ounces, kg, grams);
这也修复了此错误:
1> c:\users\mackiller\documents\visual studio
2010\projects\lab12\lab12\lab12.cpp(35):错误C2664:“convertWeight”
:无法将参数1从“int[10]”转换为“int”1>没有可以进行此转换的上下文
磅=磅[a]代码>-不能将单个数组元素分配给数组变量本身。只要定义一个新的int变量,并有一个非冲突的名称。我要使用for循环的变量“a”,它改变了每一个循环的值,为什么堆栈溢出上的许多C++问题有某种80年代风格的命令行接口?另外,尽可能使用C数组,不要使用C数组。非常感谢!我现在明白了。我好像走错方向了。还有一件事。由于它修复了我的错误,它给了我新的错误:错误C2109:下标需要数组或指针类型它在函数showArray中连续给了我10次这个错误。我似乎把这个程序搞错了。我打印阵列的方式是否有其他方法或修复方法?
convertWeight(pounds[a], ounces, kg, grams);