百度文库里有,写的不错,很精彩。
实体书:
《趣味C程序设计集锦(爱上程序设计)》作为计算机C程序设计的科普读物与学习C语言程序设计的教学参考书,着眼于应用C程序设计求解问题的基本方法与技巧,提高通过C程序设计解决实际问题的能力。《趣味C程序设计集锦(爱上程序设计)》以各类趣题的C程序设计求解为主线,取材注重典型性与趣味性,程序注重结构化与可读性。所精选的趣解包括典型的数值求解、常见的数据处理、有趣的智力游戏、巧妙的模拟探索、新颖的图表创建,大多是引导入门的基础题、常规题,也适当设计少量难度较大的综合题与经典名题,难度适宜,深入浅出。
//希望kutpbpb的回答能对你有所帮助!//《原创》该程序已调试,并可正确运行,可根据自己需要再作调整!
#include <iostream>
using namespace std
const int NUM = 5
//趣味矩阵类的声明;
class FunnyMatrix
{
public:
FunnyMatrix()
void GetSqure()
void GetSnake()
void GetCircleExToIn()
void GetCircleInToEx()
void PrintElem()
private:
int elem[NUM][NUM]
}
//类构造函数
FunnyMatrix::FunnyMatrix()
{
int i = 0,j = 0
for(i=0i<NUMi++)
for(j=0j<NUMj++)
elem[i][j]=i*NUM+j+1
}
void FunnyMatrix::PrintElem()
{
cout<<"\nOut the Matrix:\n"
int i=0,j=0
for(i=0i<NUMi++)
{
for(j=0j<NUMj++)
cout<<elem[i][j]<<" "
cout<<endl
}
}
void FunnyMatrix::GetSqure()
{
int i=0,j=0,temp[NUM][NUM]={0,0,0}
for(i=0i<NUM-1i++)
{
temp[0][0]=1
if(i%2==0)
{
//右移一步
temp[0][i+1]=temp[0][i]+1
//下移i+1步
for(j=1j<=i+1j++)
temp[j][i+1]=temp[j-1][i+1]+1
//左移i+1步
for(j=ij>=0j--)
temp[i+1][j]=temp[i+1][j+1]+1
}
else
{
//下移一步
temp[i+1][0]=temp[i][0]+1
//右移i+1步
for(j=1j<=i+1j++)
temp[i+1][j]=temp[i+1][j-1]+1
//上移i+1步
for(j=ij>=0j--)
temp[j][i+1]=temp[j+1][i+1]+1
}
}
for(i=0i<NUMi++)
for(j=0j<NUMj++)
elem[i][j]=temp[i][j]
}
void FunnyMatrix::GetSnake()
{
int i=0,j=0,k=0,temp[NUM][NUM]={0,0,0}
temp[0][0]=1
temp[NUM-1][NUM-1]=NUM*NUM
for(i=0i<NUM-1i++)
{
if(i%2==0)
{
//右移一步
temp[0][i+1]=temp[0][i]+1
//左下移
for(j=i,k=1j>=0j--,k++)
temp[k][j]=temp[k-1][j+1]+1
}
else
{
//下移一步
temp[i+1][0]=temp[i][0]+1
//右上移
for(j=i,k=1j>=0j--,k++)
temp[j][k]=temp[j+1][k-1]+1
}
}
for(i=NUM-1i>1i--)
{
if((NUM-1-i)%2==0)
{
//左移
temp[NUM-1][i-1]=temp[NUM-1][i]-1
//右上移
for(k=NUM-2,j=ij<=NUM-1j++,k--)
temp[k][j]=temp[k+1][j-1]-1
}
else
{
//上移一步
temp[i-1][NUM-1]=temp[i][NUM-1]-1
//左下移
for(k=NUM-2,j=ij<=NUM-1k--,j++)
temp[j][k] = temp[j-1][k+1]-1
}
}
for(i=0i<NUMi++)
for(j=0j<NUMj++)
elem[i][j]=temp[i][j]
}
void FunnyMatrix::GetCircleExToIn()
{
int i=0,j=0,k=0,temp[NUM][NUM]={0,0,0}
temp[0][0]=1
for(i=0i<NUM/2i++)
{
if(i!=0)
temp[i][i]=temp[i][i-1]+1
//右移
for(j=i+1j<NUM-ij++)
temp[i][j]=temp[i][j-1]+1
//下移
for(j=i+1j<NUM-ij++)
temp[j][NUM-1-i]=temp[j-1][NUM-1-i]+1
//左移
for(j=NUM-2-ij>=ij--)
temp[NUM-1-i][j]=temp[NUM-1-i][j+1]+1
//上移
for(j=NUM-2-ij>ij--)
temp[j][i]=temp[j+1][i]+1
}
if(NUM%2==1)
temp[NUM/2][NUM/2]=NUM*NUM
for(i=0i<NUMi++)
for(j=0j<NUMj++)
elem[i][j]=temp[i][j]
}
void FunnyMatrix::GetCircleInToEx()
{
int i=0,j=0,k=0,temp[NUM][NUM]={0,0,0}
temp[0][NUM-1]=NUM*NUM
for(i=0i<NUM/2i++)
{
if(i!=0)
temp[i][NUM-i-1]=temp[i-1][NUM-i-1]-1
//下移
for(j=i+1j<NUM-ij++)
temp[j][NUM-1-i]=temp[j-1][NUM-1-i]-1
//左移
for(j=NUM-2-ij>=ij--)
temp[NUM-1-i][j]=temp[NUM-1-i][j+1]-1
//上移
for(j=NUM-2-ij>=ij--)
temp[j][i]=temp[j+1][i]-1
//右移
for(j=i+1j<NUM-i-1j++)
temp[i][j]=temp[i][j-1]-1
}
if(NUM%2==1)
temp[NUM/2][NUM/2]=1
for(i=0i<NUMi++)
for(j=0j<NUMj++)
elem[i][j]=temp[i][j]
}
int main(void)
{
FunnyMatrix fm
cout<<"\n矩阵初始化信息:"
fm.PrintElem()
cout<<"\n第一种矩阵: "
fm.GetSqure()
fm.PrintElem()
cout<<"\n第二种矩阵: "
fm.GetSnake()
fm.PrintElem()
cout<<"\n第三种矩阵: "
fm.GetCircleExToIn()
fm.PrintElem()
cout<<"\n第四种矩阵: "
fm.GetCircleInToEx()
fm.PrintElem()
cout<<"\n\n!!!Hello World,kutpbpb!!!"/* prints !!!Hello World!!! */
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)