




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验 8 二维数组与字符数组【实验题1】 程序填空,输入一个 44 矩阵,求出主对角线上的元素之和 sum1、副对角线上的元素之和 sum2,并输出结果。 【算法分析】:每一行只有一个主对角线元素 aii(特征:i=j),也仅有一个副对角线元素 aini1(特征:i+j=n1,即 j=n1i)#includevoid main() int i,j,sum1=0,sum2=0, a44;printf(Input a 4*4 matrix:n);for(i=0;i4;i+) for(j=0;j4;j+)scanf(%d, &aij);for(i=0;i4;i+) sum1+=aii;sum2+=ai3-i ;printf(sum1=%d, sum2=%dn,sum1,sum2);【实验题2】 程序填空,打印杨辉三角形前 10 行:1111211331146411510 1051 【算法分析】:分析一个 10 行的杨辉三角,需要一个 1010 的二维矩阵 a,则:1) 杨辉三角为下三角矩阵,只需要求出第 i 行(i=0,1,2,9)前i+1 个元素,即 aij!=0 (j=0i).2) 每行的第 0 列元素均为 1,即 ai0=13) 每行的主对角线元素也均为 1,即 aii=14) 从第 2 行开始,每行夹在第 0 列元素与主对角线元素之间的元素aij( i=2,3,9, j=1,.,i1 ) 等于其左上方元素 ai1j1与正上方元素ai1j之和,即 aij=ai1j1+ai1j;5) 输出该矩阵的下三角,即得出杨辉三角的前 10 行。#includevoid main() int i,j;int a1010;for(i=0;i10;i+) ai0=aii=1;for(i=2;i10;i+) for(j=1;ji;j+)aij=ai-1j-1+ai-1j;for(i=0;i10;i+) for(j=0;j=i;j+)printf(%5d, aij);printf(n);【实验题3】 程序填空,输入一个以回车结束的字符串(有效长度少于80),将其中的小写字母统一更换成对应的大写字母。【算法分析】:1、输入字符串,并存储在字符数组中,n表示回车;2、遍历字符串的每个元素,如果是小写字母(a97z122),则更换成大写字母;3、输出更新后的字符串。运行程序,输入:Tom&Jacks10输出结果:#includevoid main() int i;char s80;i=0;while(si=getchar()!=n) i+; si=0;for(i=0;i=a&si=z) si-=32;for(i=0;si!=0;i+) printf(%c,si);printf(n);【实验题4】 程序填空,输入一个以回车结束的字符串(有效长度少于80),将该字符串中的字符重新排列,使原先第 0 个字符出现在最后一位,原先第 1个字符出现在倒数第2 位,原先最后1 个字符出现在第0 位,例如:字符串”abcdef”经重排后变成”fedcba”。【算法分析】:该问题类似于方阵转置,即把特定位置的数组元素进行交换。本题中的字符串存放在一维字符型数组s 中,需要解决以下问题:1) 计算字符串s 的有效长度 len2) 将字符串 s 的前半部分(0len/21)与字符串的后半部分对调,即交换对称元素,与si对称的元素是slen1i,如下图所示:0 1 2 3 4 5a b c d e f 0 #includevoid main() int i,len=0;char s80,temp;printf(Input a string(80):n);gets(s);for(i=0;si!=0;i+) len+;for(i=0;i=len/2-1;i+) temp=si;si=slen-1-i;slen-1-i=temp; for(i=0;si!=0;i+)putchar(si);printf(n);【实验题5】 将一个整数字符串转换为整数输出。(注:整数字符串和整数是不同的,比如123是一个整数字符串,每个元素都是一个数字,但不能进行数值运算,而123 是一个整数,可以进行数值运算。两者外观形态相似,本质不同)【算法分析】利用与字符0的 ASCII 之差进行计算。#include void main()char str10;double t=0;int i;printf(请输入一个数字字符串(=10 位);gets(str);for(i=0;stri!=0;i+)t=t*10+(stri-0);printf(result=%.0f,t);printf(n 谢谢,按回车键结束);【实验题6】 程序填空,编写一个字符串复制程序,它的功能是把一个字符串的所有内容复制给另一个字符串,并输出复制后的字符串。#include void main()char s180,s280;int i;printf(请输入字符串s1(=80 字符)n);gets(s1);for(i=0;s1i!=0;i+)/判断s1 的结束标志s2i=s1i;s2i=0;printf(s2=%sn,s2);printf(谢谢,按回车键结束);【实验题7】 程序填空,编写一个求字符串长度的程序,它的功能求出一个字符串中有效字符的个数。#include void main()char s80;int i;int len=0;printf(请输入一个字符串:);gets(s);for(i=0;si!=0;i+);len=i;printf(字符串有效长度=%d,len);printf(n谢谢,按回车键结束);【实验题8】 程序填空,编写一个字符串连接程序,它的功能是把两个不知道长度的字符串 s1、s2 的内容连接成为一个字符串,并保存在字符串 s1 中。(提示:要定义足够长的字符串s1)#include void main()char s180,s280;int i,j;printf(请输入字符串s1:);g
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程征用土地合同
- 有限公司内部股权转让协议
- 2025-2026年北京市中考英语综合提高练习试卷3
- DB43-T 3160-2024 新能源汽车废旧动力蓄电池综合利用规范企业评价方法
- 2025企业租赁合同诉讼状范本
- 生长发育规律授课田甜工作单位山东医学高等专科学校84课件
- 机电设备安装冷却系统方案
- 水粉基础知识课件
- 建筑工程项目施工人员健康管理方案
- 输电线路系统集成与调度方案
- 软件对接方案
- 普通高中语文课程标准解读课件
- 有机化学第十版
- 肾功能不全患者合理用药课件
- 纤维支气管镜(可弯曲支气管镜)临床应用指南(草案)
- 2022年新高考II卷高考语文试卷试题深度解读及答案详解(精校版)
- 一次调频综合指标计算及考核度量方法
- 车辆段平面布置设计
- 数字媒体艺术概论-第一章-概述
- 四大会计师事务所面试题
- GB/T 4669-2008纺织品机织物单位长度质量和单位面积质量的测定
评论
0/150
提交评论