《数据结构》实验四: ? ?字符串和多维数组 实验
 一..实验目的
 ? ? ?巩固字符串和多维数组相关知识,学会运用灵活应用。
 1.回顾字符串和多维数组的逻辑结构和存储操作特点,字符和数组的物理存储结构和常见操作。
 2.学习运用字符串和和数组的知识来解决实际问题。
 3.进一步巩固程序调试方法。
 4.进一步巩固模板程序设计。
 二.实验时间
 ? ?准备时间为第9周到第10前半周,具体集中实验时间为10周周四。2个学时。
 三..实验内容
 1.从键盘输入一些文本,统计文本单词的个数。
 
源代码:
 
#include<iostream>
 #include<cstring>
 using namespace std;
 void main()
 {?
 int i,j,count,len;?
 char s[500];
 count=0;?
 cout<<"请输入英文文本:"<<endl;
 ?cin.get(s,500);
 ?len=strlen(s);
 ?j=0;
 ?for(i=j;i<len;i++)
 ?{ ?
 if(s[i]!=' ')
 ?for(j=i;;j++)?
if(s[j]==' ') ??
{ ? ? count++; ? ?
? ? ?i=j; ? ?
 ? ? ? ? break; ? ?}?
 }?
 cout<<"文本的单词个数为:n"<<count<<endl;
 }
 
运行结果:
 

 
 
 
2.写程序输出一个5阶幻方:每一行每一列每一个对角线和均相等。
 
源代码:
 
#include <iostream> ?
 using namespace std; ?
 int main() ?
 { ?
 ? ? int n = 1,m = 3,a[6][6] = {0}; ?
 ?
 ? ?for(int i = 1; i <= 25;++i) ?
 ? ?{ ?
 ? ? ? a[n][m] = i; ?
 ? ? ? ?
 ? ? ? if(n == 1&& m == 5)
 ? ? ? { ?
 ? ? ? ? ? ++n; ?
 ? ? ? ? ? continue; ?
 ? ? ? ?} ?
 ? ? ? ?else ?
 ? ? ? ?{ ?
 ? ? ? ? ? ?if(n == 1) ?
 ? ? ? ? ? ? n = 5; ?
 ? ? ? ? ? else ?
 ? ? ? ? ? ? ? ?--n; ?
 ? ? ? ? ? ?if(m == 5) ?
 ? ? ? ? ? ? ? ? m = 1; ?
 ? ? ? ? ? ? else ?
 ? ? ? ? ? ? ? ? ++m; ?
 ? ? ? ?} ?
 ? ? ? ? ?
 ? ? ? ?if(a[n][m] != 0) ?
 ? ? ? ? { ?
 ? ? ? ? ? ? n += 2; ?
 ? ? ? ? ? ? m -= 1; ?
 ? ? ? ? } ?
 ? ? } ?
 ?
 ? ? for(n = 1; n <= 5; ++n) ?
 ? ? { ?
 ? ? ? ? for(m = 1; m <= 5; ++m) ?
 ? ? ? ?{ ?
 ? ? ? ? ? ? cout << a[n][m] << " ? "; ?
 ? ? ? ? ? ? if(m%5 == 0) ?
 ? ? ? ? ? ? cout << endl; ?
 ? ? ? ? } ?
 ? ? } ?
 ? ? return 0; ?
 } ?
 
 
运行结果:
 
