C语言螺旋打印数字

#include <stdio.h>
int main()
{
int a[10][10], i, j, k=0, m, n;
printf("输入n(n<10):\n");
scanf("%d",&n);
if(n%2==0)m=n/2;
else m=n/2+1; //m记录螺旋次数
for(i=0; i<m; i++)
{
for(j=i; j<n-i; j++)
{
k++;
a[i][j]=k;
}
for(j=i+1; j<n-i; j++)
{
k++;
a[j][n-i-1]=k;
}
for(j=n-i-2; j>=i; j--)
{
k++;
a[n-i-1][j]=k;
}
for(j=n-i-2; j>=i+1; j--)
{
k++;
a[j][i]=k;
}
}
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
printf("%-3d",a[i][j]);
printf("\n");
}
return 0;
}

时间: 2024-10-25 14:34:12

C语言螺旋打印数字的相关文章

c语言实践 打印数字三角形

效果如下图: 思路就是外层循环控制要打印的行数,里层循环控制每行打印的数字个数. int val = 65; for (int i = 0; i < 6; i++) { for (int j = 0; j < i+1 ; j++) { printf("%d ",val); val++; } printf("\n"); } 原文地址:https://www.cnblogs.com/yfish/p/9718173.html

打印螺旋矩阵数字

明确了方阵数字是螺旋递增以后,发现每一个"口"字型的一圈数字正好闭合且连续递增.所以解题思路是由"口"字型的 递增依次向内嵌套.先填充最外层"口"字型的一圈数字,接着填充次外层--最后填充最内层的四个数.由一些较简单的画图可以 看出,层数的奇偶会影响到最内层的填充.当为奇数时,最内层只剩一个数字需要填充.所以奇数层需要单独考虑. 先是填充顶部的(n-1)个数字,接着由顶部的最后一个数字开始向下,填充右部的(n-1)个数字,接着是底部的(n-1)个

【C语言】打印1到n位数。

来看一个问题: 打印1到n位数:(例如打印1到3位数,即输出1到999) 第一眼看到这个题的时候感觉好简单.一个for循环不断输出就能够解决问题.但是大家仔细想一下.在语言中数据类型存在最大的上限值.最大的数据结构unsinged long long. 它的最大值为:18446 74407 37095 51615.也就是20位.当我们想要输出1到21位数就会超出类型的最大值(早早就超出了). 所以我们该怎么设计这个程序呢? 这里提供的思路一共有3种. 1.运用数组.数组中的一个数组代表一个位.运

顺时针和逆时针螺旋打印二维数组(行列式)

一.要求: 行列式,行和宽不一定相等,要求顺时针螺旋打印每一个元素,所谓顺时针螺旋即: 第一圈:从第一行第一列元素开始,先从左到右打印第一行所有元素,接着打印最后一剩余列元素,再从右到左打印最后一行剩余元素,接着从下到上打印第一列剩余元素 第二圈:从第二行第二列开始,按上面的顺时针顺序打印一圈元素 ...,一圈圈反复,直到把所有元素无重复的打印完. 逆时针螺旋与上面的顺序刚好相反. 二.分析: 顺时针螺旋打印可以将问题分割为:先按顺时针打印第一圈,再按顺时针打印第二圈,其中每圈又分四个步骤:从左

C语言打乱一组数字顺序

#include<stdio.h> #include<stdlib.h> #include<math.h> #include<time.h> int main() { int a[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; int n=16; int i,j,T=1000,tmp; srand(unsigned(time(NULL))); while(T--) { i=rand()%n; j=rand()%n;

Swift语言指南(五)--数字字面量和数字类型转换

数字字面量 整数字面量写法如下: · 十进制数,无前缀 · 二进制数,以 0b 为前缀 · 八进制数,以 0o 为前缀 · 十六进制数,以 0x 为前缀 下面所有整数的十进制值为 17 : 1 let decimalInteger = 17 2 let binaryInteger = 0b10001 // 17 二进制标识 3 let octalInteger = 0o21 // 17 八进制标识 4 let hexadecimalInteger = 0x11 // 17 十六进制标识 浮点数字

李洪强漫谈iOS开发[C语言-044]-翻译数字

 李洪强漫谈iOS开发[C语言-044]-翻译数字

C语言 字符串和数字转换函数

atof(将字符串转换成浮点型数) 相关函数 atoi,atol,strtod,strtol,strtoul 表头文件 #include <stdlib.h> 定义函数 double atof(const char *nptr); 函数说明 atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回.参数nptr字符串可包含正负号.小数点或E(e)来表示指数部分,如123.456或123e-2.

Java n个线程轮流打印数字的问题

一. 实现两个线程.轮流打印出数字.例如以下: bThread --> 10 aThread --> 9 bThread --> 8 aThread --> 7 bThread --> 6 aThread --> 5 bThread --> 4 aThread --> 3 bThread --> 2 aThread --> 1 用java中的Lock类实现: package com.yjq.thread_demo; import java.uti