《数据结构》实验四:字符串和多维数组 实验

来源:互联网 发布:网络课舌尖上的植物学 编辑:程序博客网 时间:2024/05/19 11:46


一..实验目的

    巩固字符串和多维数组相关知识,学会运用灵活应用。

1.回顾字符串和多维数组的逻辑结构和存储操作特点,字符和数组的物理存储结构和常见操作。

2.学习运用字符串和和数组的知识来解决实际问题。

3.进一步巩固程序调试方法。

4.进一步巩固模板程序设计。


二..实验内容

1.从键盘输入一些文本,统计文本单词的个数。

2.写程序输出一个5阶幻方:每一行每一列每一个对角线和均相等。

3.  自己设计一个字符加密算法,并设计程序验证:输入文本,解后加密并输出。在些基础上设计一个你算法的解密程序。

   前两题是必做题,第3题是选做题。


实验内容1:从键盘输入一些文本,统计文本单词的个数

#include<iostream>using namespace std;int count_word(char *str);void main(){char str[80];int sum=0;cout<<"请输入文本"<<endl;cin.get(str,80);sum=count_word(str);cout<<"您一共输入"<<sum<<"个单词"<<endl;}int count_word(char *str){int count,state;char *p;count=0;state=1;p=str;while(*p!='\0'){if(*p==' ')state=1;elseif(state==1){ state=0; count++;}p++;}return count;}



实验内容2:写程序输出一个5阶幻方:每一行每一列每一个对角线和均相等。

#include<iostream>#include<iomanip>#include<stdlib.h>using namespace std;const int N=5;void square(int a[N][N],int n){int i,j,k;i=0;j=n/2;a[i][j]=1;for(k=2;k<=N*N;k++){int iTemp,jTemp;iTemp=i;jTemp=j;i=i-1;if(i<0)i=n-1;j=j-1;if(j<0)j=n-1;if(a[i][j]>0){i=iTemp+1;if(i==n)i=0;j=jTemp;}a[i][j]=k;}}void show(int b[N][N]){int i,j;for(i=0;i<5;i++){for(j=0;j<5;j++)cout<<b[i][j]<<" ";cout<<endl;}}void init(int c[N][N]){int i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){c[i][j]=0;}}int main(){int arr[N][N];init(arr);square(arr,5);show(arr);system("pause");return 0;}







0 0