第四章 数组学习要求和实验
学习要求:
理解数组的基本概念,了解数组存储方法。
掌握一维和二维数组定义格式和数组元素使用。了解多维数组的定义和引用形式。
掌握字答数组的定义、字符数组与字符串的关系。
掌握常用字符串处理函数的使用。
进一步掌握循环程序设计技巧和方法。
进一步积累程序调试经验。
实验作业
1.调试分析课本每一个例题,有可能的话更改成2-3个方法的新程序;
2.编程实现课本每一个编程习题。
3. 编程定义一个4X5矩阵和5X3矩阵,并计算它们的积。
4.编程输出1到n的平方的自然数构成的“魔方阵”,魔方阵是指它每一行和每一列及对角线之和均相等的方阵。
5.积累调试程序经验,收集错误信息原因(每个同学收集3-5条错误信息原因,并输入电脑形成文字)。
作业要求
网上提交各个程序和相关要求的文字。
可以分两个博客文章来交。前2个题和后3个题各放到一个博客文章中提交
习题2:输入数组,求出最大值及其下标
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int i,j,t;
int str[5];
cout<<"请输入五个数:"<<endl;
for(i=0;i<5;i++)
cin>>str[i];
cout<<"这五个数的从小到大的顺序是:"<<endl;
for(i=0;i<4;i++)
for(j=0;j<4-i;j++)
if(str[j]>str[j+1])
{t=str[j];str[j]=str[j+1];str[j+1]=t;}
for(i=0;i<5;i++)
cout<<str[i]<<setw(4);
cout<<endl;
return 0;
}
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int a[2][3];
int i,j,big;
cout<<"请输入二行三列二维数组的元素值:"<<endl;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
cout<<"a["<<i<<"]"<<"["<<j<<"]=";
cin>>a[i][j];
}
cout<<"该二维数组为:";
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
if(j%3==0)
cout<<endl;
cout<<setw(4)<<a[i][j];
}
cout<<endl;
big=a[0][0];
for(i=0;i<2;i++)
for(j=0;j<3;j++)
if(a[i][j]>=big)
big=a[i][j];
for(i=0;i<2;i++)
for(j=0;j<3;j++)
if(a[i][j]==big)
cout<<"该数组中最大元素为:"<<"a["<<i<<"]"<<"["<<j<<"]="<<a[i][j]<<endl;
}
#include <iostream>
using namespace std;
int main()
{
int i,math[40],n;
float aver=0.0;
int unpassedcount=0;
int passedcount=0;
int highscorecount=0;
cout<<"请输入学生人数:";
cin>>n;
cout<<"请输入成绩:"<<endl;
for(i=0;i<n;i++)
{
cin>>math[i];
aver+=math[i];
}
aver/=n;
for(i=0;i<n;i++)
{
if(math[i]<60)
unpassedcount++;
else
passedcount++;
if(math[i]>=90) highscorecount++;
}
cout<<"平均分为:"<<aver<<endl;
cout<<"90分以上的人数为:"<<highscorecount<<endl;
cout<<"及格人数为:"<<passedcount<<endl;
cout<<"不及格人数为:"<<unpassedcount<<endl;
return 0;
}
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int i;
int f[40]={1,1};
for(i=2;i<40;i++)
f[i]=f[i-2]+f[i-1];
for(i=0;i<40;i++)
{
if(i%4==0)
cout<<endl;
cout<<setw(12)<<f[i];
}
cout<<endl;
return 0;
}
暂时先这些吧,后边的再补上啦。