《数据结构》实验四: ? ?字符串和多维数组 实验
一..实验目的
? ? ?巩固字符串和多维数组相关知识,学会运用灵活应用。
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; ?
} ?
运行结果: