数组编程习题解答.ppt
《数组编程习题解答.ppt》由会员分享,可在线阅读,更多相关《数组编程习题解答.ppt(60页珍藏版)》请在三一办公上搜索。
1、数组编程讲解,2.求一个3*3的整型矩阵对角线之和,对角线元素怎样描述?,int sum=0,i,a33;for(i=0;i 3;i+)sum=sum+aii;,aii,printf(对角线之和=%6d,sum);,3.输入一个数,将其插入到一个已排好序的数组中,使得原数组依然按原序有序。,main()int a10=5,12,39,60,i,x;scanf(%d,4.将一个数组中的值按逆序存放。,0,1,2,3,4,5,6,7,8,9,原序,逆序,for(i=0;i 10/2;i+)temp=ai;ai=an-1-i;an-1-i=temp;/*n 为数组元素的个数。,5.有一篇文章,有三行
2、文字,每行有80 个字符。要求统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数,三行文字的存放方式:二维字符数组 ch380;各类字符的个数变量:大写英文字母的个数:uppercase小写英文字母的个数:smallletter数字个数:digit空格个数:blank其他字符个数:others,处理方式:,for(i=0;i=A,6.打印以下图案:,0,for(i=0;i5;i+)for(j=0;ji;j+)putchar();puts(ch);putchar(n);,a,p,p,l,e,ch1,0,a,p,p,l,e,ch2,0,char ch180,ch280;int i;fo
3、r(i=0;i80;i+)ch2i=;gets(ch1);i=0;do ch2i=ch1i;while(ch1i);,7.字符串复制,习题,1 将10个整数放到一维数组中,并按从大到小排序。,定义一个一维整数数组:char a10;,printf(请输入10个整数:n);for(i=0;i10;i+)scanf(%d,输入10个整数:,对数组 a 进行排序:因题目未指定排序方法,所以,可以使用任何方法排序。,对数组 a 进行排序(选择法),for(i=0;ia p)p=j;if(p!=i)med=a i;a i=a p;a p=med;,程序:,for(i=0;ia p)p=j;if(p!=i
4、)med=a i;a i=a p;a p=med;for(i=0;in;i+)printf(%6d,ai);printf(n);,#include#define n 10void main()int an,i,j,p,med;printf(please input);printf(%d integers:,n);for(i=0;in;i+)scanf(%d,2.将20个整数放到一维数组中,输出该数组中的最大值和最小值。,定义一个一维整数数组:char a20;,printf(请输入20个整数:n);for(i=0;i20;i+)scanf(%d,输入20个整数:,找出数组 a 中的最大值和最小
5、值:,.找出数组 a 中的最大值和最小值:,设:max中存放最后找到的最大值;min中存放最后找到的最小值;不妨设:max=a0;min=a0;for(i=0;imax)max=ai;else if(a imin)min=a i;,#include#define n 20void main()int an,i,max,min;printf(please input);printf(%d integers:,n);for(i=0;imax)max=ai;else if(a imin)min=a i;printf(the largest number is%6dn,max);printf(the
6、least number is%6dn,min);,3.将15个整数放到一维数组中,输出该数组中的最大值它的下标。然后将它和数组中的最前面的元素对换。,(1)定义一个一维整数数组:char a15;,printf(请输入15个整数:n);for(i=0;i15;i+)scanf(%d,(2)输入15个整数:,(3)找出数组 a 中的最大值和它的下标:,(3)找出数组 a 中的最大值和它的下标:,设:max中存放最后找到的最大值;k中存放最后找到的最大值的下标;不妨设:max=a0;k=0;for(i=0;imax)max=ai;k=i;,(4)数组 a 中的最大值和第一个数组元素交换:,用te
7、mp作为临时变量交换语句为:temp=a k;ak=a0;a0=temp;,#include#define n 15void main()int an,i,max,k;printf(please input);printf(%d integers:,n);for(i=0;imax)max=ai;k=i;ak=a0;a0=max;printf(the largest number is%6dn,max);printf(the largest numbers order is%6dn,k);,4.将一维数组中的数逆序存放,不使用辅助数组。,#define n 10定义一个一维整数数组:char a
8、n;,printf(请输入%d个整数:n,n);for(i=0;in;i+)scanf(%d,输入n个整数:,将一维数组中的数逆序存放:,a i=a;,a=temp;,方法:将数组a中正数和倒数位置对应相同的元素对调。(正数第1个和倒数第1个,正数第2个和倒数第2个,正数第 i 个和倒数第 i个)i 的最后一个值是什么?,将一维数组中的数逆序存放:,n/2,for(i=0;in/2;i+),n-i-1,n-i-1,temp=a i;,#include#define n 10void main()int an,i,temp;printf(please input);printf(%d integ
9、ers:,n);for(i=0;in;i+)scanf(%d,5.有一封信共有3行,每行20个字符,统计其中有多少英文大写字母,多少英文小写字母,多少数字字符,多少空格。,定义一个字符数组:char str30;,printf(请输入一行字符:n);gets(str);,输入一行字符:,对字符数组中的字符进行统计:,3.对字符数组中的字符进行统计:,for(i=0;stri!=0;i+),if(stri=A,完整程序:,#include#include void main()int i,j,uplet=0,digit=0,space=0,lowlet=0;char str30;printf(现
10、在开始统计.:n);for(j=0;j3;j+)printf(请输入第%d 行字符:n,j+1);gets(str);for(i=0;stri!=0;i+),if(stri=A,6.将字符数组str1中下标为偶数的元素赋给另一字符数组str2,并输出str1和str2。,定义两个字符数组:char str130,str230;,printf(请输入一行字符:n);gets(str1);,输入一行字符到str1中:,对字符数组中的进行复制:,3.对字符数组中的字符进行复制:,for(i=0,j=0;stri!=0;i+),if(i%2=0)str2j=str1i;j+;,完整程序:,#inclu
11、de#include void main()int i,j;char str130,str230;printf(请输入一 行字符:n);gets(str1);for(i=0,j=0;str1i!=0;i+)if(i%2=0)str2j=str1i;j+;str2j=0;printf(复制之前:%snn,str1);printf(复制之后:%snn,str2);,7.有5个国家名,要求按字母先后顺序排列,并按序输出。,定义一个二维字符数组:char str1510;,for(i=0;i5;i+)printf(请输入一行字符:n);gets(str1i);,输入5行字符到str1中:,对字符数组中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数组 编程 习题 解答
链接地址:https://www.31ppt.com/p-5986266.html