某汽车厂一月份生产汽车4辆,从2月份开始每个月生产的汽车是前一个月的产量减去1辆再翻一番,求每个月的产量和全年的总产量。
提示:定义一个一维数组a[N],则:
a[0]=4
a[1]=2(a[0]-1)
a[2]=2(a[1]-1)
a[n-1]=2(a[n-2]-1)
参考如下:
#include <stdio.h>
int main()
{
int n = 12, sum = 0;
int a[n];
a[0] = 4;
sum += a[0];
printf("%d月产量=%d\n", 1, a[0]);
for (int i = 1; i < n; i++)
{
a[i] = 2 * (a[i - 1] - 1);
printf("%d月产量=%d\n", i+1, a[i]);
sum += a[i];
}
printf("全年总量=%d", sum);
return 0;
}
#include <iostream>
using namespace std;
const int N = 12;
int a[N];
int main() {
a[0] = 4;
for (int i = 1; i < N; i++) {
a[i] = 2 * (a[i - 1] - 1);
}
int sum = 0;
for (int i = 0; i < N; i++) {
sum += a[i];
}
for (int i = 0; i < N; i++) {
cout << "第" << i + 1 << "个月的产量:" << a[i] << endl;
}
cout << "总产量:" << sum << endl;
return 0;
}
运行截图
(1) 求数组A中的最大整数。
(2) 求n个整数的和。
(3) 求n个整数的平均值
#include <iostream.h>
class RecurveArray
{ //数组类声明
private: int *Elements; //数组指针
int ArraySize; //数组尺寸
int CurrentSize; //当前已有数组元素个数
public :
RecurveArray ( int MaxSize =10 ) :
ArraySize ( MaxSize ), Elements ( new int[MaxSize] ){ }
~RecurveArray ( ) { delete [ ] Elements; }
void InputArray(); //输入数组的内容
int MaxKey ( int n ); //求最大值
int Sum ( int n ); //求数组元素之和
float Average ( int n ); //求数组元素的平均值
};
void RecurveArray :: InputArray ( )
{ //输入数组的内容
cout << "Input the number of Array: \n";
for ( int i = 0; i < ArraySize; i++ ) cin >> Elements[i];
}
int RecurveArray :: MaxKey ( int n )
{ //递归求最大值
if ( n == 1 ) return Elements[0];
int temp = MaxKey ( n - 1 );
if ( Elements[n-1] > temp ) return Elements[n-1];
else return temp;
}
int RecurveArray :: Sum ( int n ) { //递归求数组之和
if ( n == 1) return Elements[0];
else return Elements[n-1] + Sum (n-1);
}
float RecurveArray :: Average ( int n ) { //递归求数组的平均值
if ( n == 1) return (float) Elements[0];
else return ( (float) Elements[n-1] + ( n - 1) * Average ( n - 1 ) ) / n;
}
int main ( int argc, char* argv [ ] ) {
int size = -1;
cout << "No. of the Elements : ";
while ( size < 1 ) cin >> size;
RecurveArray ra ( size );
ra.InputArray();
cout<< "\nThe max is: " << ra.MaxKey ( ra.MaxSize ) << endl;
cout<< "\nThe sum is: " << ra.Sum ( ra.MaxSize ) << endl;
cout<< "\nthe avr is: " << ra.Average ( ra.MaxSize ) << endl;
return 0;
}