#include<iostream>const int MAX = 5;using namespace std;const double* fill_array(double ar[] , int limit); //填充数组函数void show_array(const double ar[] , const double* last); //显示数组void change_array(int r , double ar[] , const double* last);int main(){ double oldHouse[MAX]; const double* lastHouse = fill_array(oldHouse,MAX); //填充 show_array(oldHouse,lastHouse); //第一次显示 change_array(3,oldHouse,lastHouse); //因子随便选了个数字3,只是为了说明程序功能 show_array(oldHouse,lastHouse); //显示X因子后的数组 return 0;}const double* fill_array(double ar[] , int limit){ double num = 0; int size = 0; for(int i = 0 ; i < limit ; ++i) { cout<<"请输入第"<<i+1<<"个数."; cin>>num; if(!cin) //判断输入是否位double,如果输入非法结束 { cin.clear(); while(cin.get() != '\n') continue; cout<<"输入非法数据,填充结束\n"; ar[size] = 0; //这两行作用:第一个输入为非法,则该数组默认第一个数值位0,避免段错误,下同 ++size; //这两行如果注释掉,那第一个输入错误或为负,程序就会出错 break; } else if(num < 0) //输入负数,控制结束 { cout<<"数组填充完成.\n"; ar[size] = 0; //同上 ++size; break; } ar[size] = num; ++size; } return &(ar[size-1]);}void show_array(const double ar[] , const double* last){ cout<<"显示数组\n"; const double* mid = ar; for(int i = 0 ; ; ++i) //省略掉判断条件,作为无限循环 { cout<<"第"<<i+1<<"个数为"<<ar[i]<<endl; if((mid+i) == last) break; }}void change_array(int r , double ar[] , const double* last){ for(int i = 0 ; ; ++i) { ar[i] *= r; if(ar+i == last) break; }}
第8题 第1小题#include<iostream>using namespace std;const int season = 4;const char* seasonName[season] = {"Sprint","Summer","Fall","Winner"}; //c++11void fillArray(double* arr , int season);void showArray(const double* arr , int season); int main(){ double InSeason[season]; fillArray(InSeason,season); showArray(InSeason,season); return 0;}void fillArray(double* arr , int season){ for(int i = 0 ; i < season ; ++i) { cout<<"请输入"<<*(seasonName+i)<<"的收入."; cin>>*(arr+i); }}void showArray(const double* arr , int season){ double cost = 0; for(int i = 0 ; i < season ; ++i) { cout<<*(seasonName+i)<<"收入为"<<*(arr+i)<<"\n"; cost += *(arr+i); } cout<<"总收入:"<<cost;}
第8题第2小题#include<iostream>using namespace std;const int season = 4;const char* seasonName[season] = {"Sprint","Summer","Fall","Winner"};struct inCome{ double takeIn[season];};void fillArray(inCome* re);void showArray(const inCome* re);int main(){ inCome gets; fillArray(&gets); showArray(&gets); return 0;}void fillArray(inCome* re){ for(int i = 0 ; i < season ; ++i) { cout<<"请输入"<<*(seasonName+i)<<"的收入:"; cin>>re->takeIn[i]; }}void showArray(const inCome* re){ double cost = 0; for(int i = 0 ; i < season ; ++i) { cout<<*(seasonName+i)<<"的收入为"<<re->takeIn[i]<<endl; cost += re->takeIn[i]; } cout<<"总收入为"<<cost;}