??
一..实验目的
????巩固字符串和多维数组相关知识,学会运用灵活应用。
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; else if(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; }
??
??