登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

秒大刀 博客

好好学习 天天向上

 
 
 

日志

 
 
 
 

嵌套矩阵的生成  

2006-02-23 21:43:11|  分类: C/C++ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
/*******************\
嵌套矩阵的生成。
如:输入1,2,3,4
将生成以下的矩阵:
--------------
1 1 1 1 1 1 1
1 2 2 2 2 2 1
1 2 3 3 3 2 1
1 2 3 4 3 2 1
1 2 3 3 3 2 1
1 2 2 2 2 2 1
1 1 1 1 1 1 1
--------------
杨明哲 2004/11/24
\*******************/

#define N 5 /*控制输入参数的个数*/
/*#define FILLTEST*/ /*测试函数fill()的开关*/
/*#define DEBUG*/ /*调试开关*/

#include<stdio.h>

void fill(int* from,int* to,int n);
void main()
{
int i,j;
int key[N],data[2*N-1];
/*以下为函数fill()的测试*/
#ifdef FILLTEST
#define FROM 1
#define TO 3
printf("Fill test , from %d to %d\n",FROM,TO);
for(i=0;i<2*N;++i)
{
printf("%d ",i);
data[i]=0;
}
printf("\n");
for(i=0;i<2*N;++i)
{
printf("%d ",data[i]);
}
printf("\n");
fill(&data[FROM],&data[TO],4);
for(i=0;i<2*N;++i)
printf("%d ",data[i]);
printf("\n");
#else
system("cls");
#endif
/*程序的输入部分*/
printf("Please input %d numbers :\n",N);
for(i=0;i<N;++i)
scanf("%d",&key[i]);
printf("The answer is:\n\n");
/*__________主要运算过程____________*/
for(i=0;i<N;++i)
{
fill(&data[i],&data[2*N-i-1],key[i]);
for(j=0;j<(2*N-1);++j)
printf("%d ",data[j]);
#ifdef DEBUG
printf("\t%d\t%d\n",i,key[i]);
#else
printf("\n");
#endif
}
for(i-=2;i>=0;--i)
{
fill(&data[i],&data[2*N-i-1],key[i]);
for(j=0;j<(2*N-1);++j)
printf("%d ",data[j]);
#ifdef DEBUG
printf("\t%d\t%d\n",i,key[i]);
#else
printf("\n");
#endif
}
printf("\n======THE END======\n");
getch();
}
void fill(int* from,int* to,int n)
/*将指针from到to见间的空间填充成n所代表的值(不包括to所指的位置)*/
{
int* p;
#ifdef DEBUG
#include <assert.h>
assert(from<to);
#endif
for(p=from;p<to;p++)
{
*p=n;
}
}
  评论这张
 
阅读(928)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018