数组的概念.docx
- 文档编号:11913955
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:89
- 大小:41.14KB
数组的概念.docx
《数组的概念.docx》由会员分享,可在线阅读,更多相关《数组的概念.docx(89页珍藏版)》请在冰豆网上搜索。
数组的概念
数组的概念
1(定义一个长度为4的数组,
用于存储用户输入的4个数。
求解并打印第1、4个元素的平均值
以及第2、3个元素的平均值。
#include
{
doublea[4];
cout<<"请输入4个数字:
";
for(intb=0;b<4;b++)
{
cin>>a[b];
}
cout<<(a[0]+a[3])/2< cout<<(a[1]+a[2])/2< } 2(定义一个长度为12的整型数组 ,其元素由随机数发生器随机产生,并将该数组按照逆序打印出来。 #include usingnamespacestd;voidmain() { constintN=12;//const是整型的意思 srand(time(0));//随即发生器函数 inta[N]; cout<<"原数组: \n"; for(intb=0;b { a[b]=rand(); cout< } cout< cout<<"逆序输出: \n"; for(intc=N-1;c>=0;c--) { cout< } cout< }//逆序就是按照从后往前输出。 数组的应用 3(使用一个数组存储一年中各月的天数,试回答用户某年某月的天数。 例: 假设用户输入的年数为2012, 月数为2,则程序应输出29。 要求: 先编写一个判断闰年的函数, 输入: 一个正整数(年份);输出: 真 (是闰年)或假(不是闰年)。 并在主 函数中使用该函数来判断闰年。 #include { intyear,month; intj[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//加上0是因为数 组找时都是n-1的位置。 cout<<"请输入年份和月份: "; cin>>year>>month; if(year>0&&month>0&&month<=12) { if(runnian(year)) j[2]++;//这里是加一输出闰年的29天。 cout< "< } else cout<<"输入数据不合法! \n";} boolrunnian(intyear){ if(year%4==0&&year%100! =0||year%400==0) returntrue; else returnfalse; } 注意: boolrunnian的函数中的int在实验中要加表示位置(视情况 而定如果错误删除。 ) 4(试编写程序计算乘积矩阵。 设矩阵A、B如下图片所示,计算乘积矩阵 C并打印出来。 注意矩阵的输入形式按行进行输入 #include usingnamespacestd;voidmain() { constintM=3,N=4,K=4;//整型 inta[M][K]={{3,0,4,5},{6,2,1,7},{4,1,5,8}}; intb[K][N]={{1,0,4,3},{2,5,1,6},{0,7,4,4},{9,3,6,0}}; intc[M][N]; inti,j,k; cout<<"原矩阵A: \n"; for(i=0;i { for(j=0;j cout< cout< } cout<<"原矩阵B: \n"; for(i=0;i { for(j=0;j cout< cout< } for(i=0;i for(j=0;j { intt=0; for(k=0;k t+=a[i][k]*b[k][j]; c[i][j]=t; }//t无限使用得值在直接赋值,有进行下一个,只是中介作用。 cout<<"乘积矩阵C=A*B: \n"; for(i=0;i { for(j=0;j cout< cout< } } 字符数组的应用 5.编程实现: 将michaeljackson的名字 保存在字符数组name中,并将其中两个单 词的首字符改为大写后打印出来, #include usingnamespacestd;voidmain() { charname[]="michaeljackson"; cout< name[0]=toupper(name[0]); name[8]=toupper(name[8]);//toupper大写转换的函数 cout< } 数组中的0为第一个,8为第九个字母。 6.将字符数组str1中下标为单号的元素 值赋给另一个字符数组str2,并打印输 出str1和str2。 其中str1中保存的字符 串可以由用户输入,假设不超过30个字符。 #include usingnamespacestd;voidmain() { constintN=30; charstr1[N+1]="",str2[N/2+1]="";//这里是设置数组的长度 cout<<"请输入一个不超过30个字符的字符串: "; cin>>str1; for(inti=0;str1[i]! ='\0';i++) { if(i%2==1) str2[i/2]=str1[i]; }//取余进行选择然后进行赋值得str2 cout< cout< } 7编程实现: 由用户输入一些字符,之后 求出其中英文字母、数字及其他字符各占多少百分比,提示: 假设输入的字符不超过80个。 相关函数说明: inttoupper(int): 将一个小写字母转 换为大写字母。 输入: 一个小写字母 ;输出: 对应的大写字母。 intisalpha(int): 判断一个字符是否 是英文字母。 输入: 一个字符;输出: 真(是个英文字母)或假(不是个英文字母)。 intisdigit(int): 判断一个字符是否是十 进制数字字符。 输入: 一个字符;输出 : 真(是个数字字符)或假(不是个数字字符)。 #include { constintN=80; charstr[N+1]; inti,letter,num,chr; cout<<"请输入一个不超过80个字符的字符串: "; cin>>str; letter=num=chr=0;//定义初始为零,然后进行运算 for(i=0;str[i]! ='\0';i++) { if(isalpha(str[i])) letter++; elseif(isdigit(str[i])) num++; else chr++; } cout<<"Alpha: "<<(float)letter/i*100<<"%"< cout<<"Number: "<<(float)num/i*100<<"%"< cout<<"Othercharacter: "<<(float)chr/i*100<<"%"< }//float这里是指取单精度数的意思(计算后数据为单精度) 8(编程实现: 保存用户输入的12个英文名字 ,并打印出其中的第1、3、5、7、9、11个名字。 #include usingnamespacestd; voidmain() { constintM=12,N=30; charname[M][N+1];//N的作用是给于名字的储存空间一长度不然输出为单个字母。 inti; cout<<"请输入12个英文名字: \n"; for(i=0;i cin>>name[i]; } cout<<"第1,3,5,7,9,11个人的名字是: \n"; for(i=0;i<12;i+=2){ cout<<(i+1)<<": \t"< } }//中间有制表符的存在使输出更加有序 数组的综合应用 9(使用随机数发生器产生50个 不超过100的正整数,保存在数组 中,打印原始数组及降序排列后的数组 。 并在数组中查找某个由用户指定的整数 ,若找到则打印出其下标,否则打印“未找到”。 要求: 打印数组时按横向制表位列对 齐的方式(数据以’\t’间隔),每行10个数。 #include usingnamespacestd;voidmain() { constintN=50; inta[N]; inti,j; srand(time(NULL)); cout<<"原始数组: \n"; for(i=0;i { a[i]=rand()%100; cout< if((i+1)%10==0)cout< } cout< //选择排序法 for(i=0;i { intk=i; for(j=i+1;j if(a[k] } intm=a[k]; a[k]=a[i]; a[i]=m; } cout<<"降序排列后的数组: \n";
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数组 概念
![提示](https://static.bdocx.com/images/bang_tan.gif)