《数据结构》实验四: 字符串和多维数组 实验
一..实验目的巩固字符串和多维数组相关知识,学会运用灵活应用。
1.回顾字符串和多维数组的逻辑结构和存储操作特点,字符和数组的物理存储结构和常见操作。
2.学习运用字符串和和数组的知识来解决实际问题。
3.进一步巩固程序调试方法。
4.进一步巩固模板程序设计。
二..实验内容
1.从键盘输入一些文本,统计文本单词的个数。
2.写程序输出一个5阶幻方:每一行每一列每一个对角线和均相等。
3. 自己设计一个字符加密算法,并设计程序验证:输入文本,解后加密并输出。在些基础上设计一个你算法的解密程序。
前两题是必做题,第3题是选做题。
三.实验报告要求
在博客中先写上实习目的和内容,画出主要操作运算算法图,然后分别上传程序代码。插入调试关键结果截图。
四.实验报告
(一).从键盘输入一些文本,统计文本单词的个数。
1、主要运算算法图
2、源代码
#include<iostream> #include<string> using namespace std; int strlen(char *s) { char *p=s; int leg=0,con=0; for(;*p!=0;p++) { if(*p>='a'&&*p<='z'||*p>='A'&&*p<='Z') { if(con==0) leg++; con=1; } else con=0; } return leg; } int main() { char ch[50]; cout<<"please input your english words(less than 50):"<<endl; cin.getline(ch,50); cout<<strlen(ch)<<endl; return 0; }
3、程序调试关键结果
1、主要运算算法图
2、源程序
#include<iostream> #include<iomanip> using namespace std; #define n 5 int a[n][n]; int itemp,jtemp; int main() { int i=0,j=n/2,k; //k表示即将填入的数 a[i][j]=1; itemp=i;jtemp=j; for(k=2;k<=n*n;k++) {int itemp=i; int jtemp=j; i=(i-1+n)%n; j=(j-1+n)%n; if(a[i][j]>0) { i=(itemp+1)%n; j=jtemp; } a[i][j]=k; } for(i=0;i<n;i++) { for(j=0;j<n;j++) { cout<<left; cout<<setw(4)<<a[i][j]<<setw(4); if(j%4==0&&j!=0) cout<<endl; } } return 0; }
3、程序调试关键结果