介绍讲解编写C或C++的趣味小程序的书

介绍讲解编写C或C++的趣味小程序的书,第1张

C语言趣味程序百例精解.pdf

百度文库里有,写的不错,很精彩。

实体书:

《趣味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

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11265464.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存