《数据结构》实验四: 字符串和多维数组 实验
.实验目的
巩固字符串和多维数组相关知识,学会运用灵活应用。
1.回顾字符串和多维数组的逻辑结构和存储操作特点,字符和数组的物理存储结构和常见操作。
2.学习运用字符串和和数组的知识来解决实际问题。
3.进一步巩固程序调试方法。
4.进一步巩固模板程序设计。
代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<cstdlib>
#include<cstring>
using namespace std;
int Match(char str[])
{
int count = 0;
int state = 1;
int i = 0;
while (str[i] != '\0')
{
if (str[i] == ' ')
{
state = 1;
}
else if (state == 1)
{
state = 0;
count++;
}
i++;
}
return count;
}
int main()
{
char T[100];
cout << "请输入字符串:";
cin.get(T, 100);
cout << "输入的字符串为:" << T << endl;
int Length = 0;
Length = Match(T);
cout << "字符串中单词的个数为:" << Length << endl;
system("pause");
return 0;
}
结果截图如下:
实验内容: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 a[N][N];
init(a);
square(a, 5);
show(a);
system("pause");
return 0;
}
结果如下: