信息技术服务税率信息技术服务增值税一般纳税人的增税率是6%。信息技术服务属于现代服务业,现在服务业税率为6%;从事信息技术服务增值税小规模纳税人实行的是3%的征收率。信息
请问如何在C语言运用循环嵌套,输出如图的1~16矩阵。
如何用C语言输出一个1—16 组成的4*4的魔方阵
上面程序必须是奇数,这个不用~~~ #include#include
#include
#include
#defineEVEN_DOUBLE_44 //双偶的最基本类型,4阶双偶
#defineSCREEN_SIZE19 //屏幕显示不变形的最大尺寸(主要是因为窗口大小限制)
#defineMIN_SIZE3 //最小阶数为3
#defineMAX_SIZE30
/*原则上是任意阶,算法是相同的,这里就以30为上限吧,
当然如果你愿意,可以修改的更大一些*/
#definePRINTprintf("Esc退出,Enter继续");//打印的宏
#defineCLEARrow=0;column=0;//清零
intMagic[MAX_SIZE][MAX_SIZE]={0}; //全局,幻方数组
introw=0;column=0; //全局,幻方的行列数
intmain(void)
{
intread(); //读取函数
voidodd(intsize,intini_value); //奇数阶幻方生成
voidmean_double_4(intsize); //4阶双偶生成
voidmean_double(intsize); //双偶生成
voidmean_single(intsize); //单偶生成
voidprint_magic(intsize); //打印幻方
voidsum_print(intdata[],intsize); //行、列、对之和打印
voidclear_sum(intdata[]);
voidcheck_magic(intdata[],intsize); //检查所得矩阵是否为幻方阵
intsize; //幻方阶数
intsum[2*MAX_SIZE+2]={0};//行、列、对之和
do{
CLEAR
clear_sum(sum);
size=read();
system("cls");
if(size%2!=0) odd(size,0);
elseif(size%4==0)mean_double(size);
elsemean_single(size);
print_magic(size);
sum_print(sum,size);
check_magic(sum,size);
}while(getch()!=27);
return0;
}
/*读入数据*/
intread()
{
intmin_size=MIN_SIZE;
intmax_size=MAX_SIZE;
intsize;
do{
printf("请输入幻方阶数n,n∈[%d,%d]\n",min_size,max_size);
scanf("%d",&size);
getchar();
if(size<3||size>MAX_SIZE)printf("非法输入,请重新输入[%d,%d]的正整数\n",min_size,max_size);
elseif(size>SCREEN_SIZE){
printf("大于屏显最大阶数,输出将变形\n");
Sleep(2000);
}
}while(sizeMAX_SIZE);
returnsize;
}
/*奇数阶幻方,采用house法*/
voidodd(intsize,intini_value)
{
intnum;//填充数字
intmin_num=1+ini_value;
intmax_num=1+size*size+ini_value; //填充范围
intx=size/2;
inty=0; //初始填充坐标
for(num=min_num;numMagic[y+row][x+column]=num;
if(num%size==0)y++;//跳步
elsex++,y+=2; //马步,其实Horse法和Siamese是完全类似的
x=x%size;
y=y%size;
/*越界反弹,即触碰到边界,从另一边返回*/
}
}
/*双偶数阶幻方,采用对调法*/
/*对调法的基础,4阶双偶。注意要求是将非主副对角线上的元素对调,
其实换个角度,你也可以说就是把祝福对角线中心对调。只不过两种思路得到的矩阵
正好是反着来的*/
/*本函数实现主副对角线互调*/
voidmean_double_4(intsize)
{
inti;
inttotal=size*size+1;
for(i=0;iMagic[row+i][column+i] =total-Magic[row+i][column+i];
Magic[row+i][EVEN_DOUBLE_4+column-i-1]=
total-Magic[row+i][EVEN_DOUBLE_4+column-i-1];
}
}
/*任意阶双偶*/
voidmean_double(intsize)
{
intnum;//填充数字
intmin_num=1;
intmax_num=1+size*size; //填充范围
inti=0; //循环变量
inttemp;
/*双偶,初始化*/
for(num=min_num;numMagic[row][column]=num;
if((num)%(size)==0){
column=0,row++;
}
elsecolumn++;
}
/*分割为4×4的小矩阵*/
row=0;column=0;
temp=size/EVEN_DOUBLE_4;
for(i=1;i<=temp*temp;i++){
mean_double_4(size);
if(i%temp==0)column=0,row+=4;
elsecolumn=(i%temp)*EVEN_DOUBLE_4;
}
}
/*单偶,用楼梯法*/
voidmean_single(intsize)
{
inti,j,k,m;
inttemp;
/*分象限处理,
14
32
与普通直角坐标系象限区别,说白了,就是个分块的概念
*/
row=0,column=0; //第一象限
odd(size/2,0);
row=size/2,column=size/2; //第二象限
odd(size/2,(size*size)/4*1);
row=0,column=size/2; //第三象限
odd(size/2,(size*size)/4*2);
row=size/2,column=0; //第四象限
odd(size/2,(size*size)/4*3);
m=size/4;
/*对换*/
for(i=0;i/*1、3象限对换*/
for(j=0;jif(i==m)k=j+m;
elsek=j;
temp=Magic[i][k];
Magic[i][k]=Magic[i+2*size/4][k];
Magic[i+2*size/4][k]=temp;
}
/*2,4对换*/
for(j=0;jk=3*size/4+j;
temp=Magic[i][k];
Magic[i][k]=Magic[i+2*size/4][k];
Magic[i+2*size/4][k]=temp;
}
}
}
/*打印幻方*/
voidprint_magic(intsize)
{
inti,j;
for(i=0;ifor(j=0;j printf("%4d",Magic[i][j]);
if(j==size-1)putchar('\n');
}
putchar('\n');
}
/*打印各行、各列、各对角线数据之和*/
voidsum_print(intdata[],intsize)
{
inti,j;
/*打印每行数据之和*/
printf("行之和:");
for(i=0;ifor(j=0;j data[i]+=Magic[i][j]; //行之和
if(j==size-1)printf("%6d",data[i]);
}
putchar('\n');
/*打印每列数据之和*/
printf("列之和:");
for(i=0;ifor(j=0;j data[size+i]+=Magic[j][i]; //列之和
if(j==size-1)printf("%6d",data[size+i]);
}
putchar('\n');
/*打印主对角线之和*/
for(i=0;idata[2*size]+=Magic[i][i];
printf("主对角线之和:%6d",data[2*size]);
putchar('\n');
/*打印副对角线之和*/
for(i=0;idata[2*size+1]+=Magic[i][size-i-1];
printf("主对角线之和:%6d",data[2*size]);
putchar('\n');
}
/*行列对和数组清零*/
voidclear_sum(intdata[])
{
inti;
for(i=0;i<2*MAX_SIZE;i++)
data[i]=0;
}
/*检查程序是否运转正常,所得结果是否是幻方*/
voidcheck_magic(intdata[],intsize)
{
inti;
intflag=0;
for(i=1;iif(data[0]-data[i])flag=1;
if(flag)printf("程序出错,Esc退出,Enter继续\n");
elseprintf("\n恭喜你,获得了一个新的%d阶幻方!\n",size);
putchar('\n');
}
怎样用C语言输出矩阵
定义二维数组作为矩阵,然后用两个for循环打印出每个元素即可。 例如一个10x10的矩阵; #define m 10 #define m 10 int a[m][n]; for(i = 0; i#include
intmain(void)
{
inti,j,k;
for(i=0;i<=3;i++)//这个是控制要输出几行“*”
{
for(j=0;j<=2-i;j++)//这个控制每行输出几个“空格”,跟i的关系来决定的
printf("");
for(k=0;k<=2*i;k++)//这个控制输出空格之后,需要输出几个“*”号,
printf("*");
printf("\n");//在外层循环内部,内层循环的外部,意思内层循环结束一次后,换行。
}
}
急求!如何用C语言输出如下矩阵(N*N)
题目要求有一个问题,它要求N最小为2,却要求N为奇数,N为奇数应该最小为3或1才对.
按照题目要求编写的C语言矩阵程序如下
#include
int main(){
int i,j,k,N,count=1;
scanf("%d",&N);
if(N<=2 || 15 printf("请输入小于等于15且大于2的奇数"); }else{ int a[N][N]; for(i=N/2;i>=0;i--){ k=N-i-1; for(j=N-i-2;j>=i;j--){ a[j][k]=count++; } for(j=N-i-2;j>=i+1;j--){ a[i][j]=count++; } for(j=i;j a[j][i]=count++; } for(j=i+1;j a[k][j]=count++; } } for(i=0;i for(j=0;j printf("%-5d",a[i][j]); } printf("\n"); } } return 0; } 相关文章 高手帮改一个通达信主图公式{DRAWGBK(O>0,RGB(33,47,58),RGB(0,0,0),0,'02',0);} {标缺口} LL:=REF(L,1);HH:=REF(H,1);上跳:=L>HH;下跳:=HREF(H,1),L,REF(H,1),3.1,-1),COL 易语言怎么获取某个程序编辑框的句柄.版本 2.程序集 窗口程序集1 .程序集变量 父, 整数型 .程序集变量 账号, 整数型.子程序 _按钮1_被单击父 = 窗口标题取句柄 (“2010”) 谁在核桃编程工作?加班多吗?感觉辛苦吗?我在核桃编程工作,工作辛不辛苦其实主要看心态。你如果认为一份工作做得很辛苦,就是自己不喜欢,只要热爱,就不会有辛苦的感觉。就目前我的状 怎么可以发布自己编程的游戏?steam:需要交100美元上架费用,就可以在steam上架1款游戏(每上架1款游戏都需要交钱)可以发布电脑游戏(桌面应用程序),手机游戏,虚拟现实(VR)游戏。疑似不支 ug自学好还是培训好培训好,有师傅教指导上手比较快,学的方法和东西比较多,时间相对比较短。自学需要大量时间和精力,还有个人毅力,如果个人毅力不够,往往学不下去,加上没有师傅指点 会不会英语会是成为学编程的障碍?英语不会成为学编程的障碍。 首先,编程语言虽然是用英文字母作为载体,但是这些代码没有英文的语法要求,也不涉及口语的表达,所以把编程语言看成 matlab如何编程首先,在我们的桌面上找到matlab软件的图标,将鼠标移到该位置双击点开,这时电脑屏幕会弹出matlab软件的主界面。其次,在这里我们不提倡在中间的那一栏直接写程序(对 980TDB数控车床加工梯形皮带轮怎样编程?O9513(V形槽形状车削循环)(2016-12-3)(广数与发那科#5003替换为#5002 ,倒角D替换为R)(粗车G65P9513 XZER U IJK F)(有E则为梯形槽)(X=