当前位置:首页 » 编程语言 » c语言打印字符方阵
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言打印字符方阵

发布时间: 2022-05-24 13:45:58

⑴ 用c语言编程,输入整数n,输出相应方阵,比如n为5可得到下面方阵

#include <stdio.h>
#include <stdlib.h>
int main() {
int i,j,n;
printf("请输入整数n:");
scanf("%d",&n);
for(i=0; i<n; i++) {
for(j=0; j<n; j++) {
if(i==j) printf("%d ", 1);
else printf("%d ", 0);
}
printf(" ");
}
}

⑵ C语言输出12345方阵

大概想法就是,对角线上是1,对角线的夹角内分别是2,3,4,5四个方向

#include<stdio.h>

intmain()
{
inti,j,n;
inta[21][21]={0};
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(i==j||(i+j)==n-1)
a[i][j]=1;
if(j>i&&(i+j)<n-1)
a[i][j]=2;
if(j>i&&(i+j)>n-1)
a[i][j]=4;
if(j<i&&(i+j)<n-1)
a[i][j]=3;
if(j<i&&(i+j)>n-1)
a[i][j]=5;
printf("%d",a[i][j]);
}
printf(" ");
}
}

⑶ 怎样用C语言输出矩阵

定义二维数组作为矩阵,然后用两个for循环打印出每个元素即可。
例如一个10x10的矩阵;
#define m 10
#define m 10
int a[m][n];
for(i = 0; i <m; i++){
for(j = 0; j < n; j++)
printf("%d",a[i][j]);
printf("\n");
}

⑷ C语言 打印矩阵

你好
具体实现如下 代码有注释 帮助理解
#include <stdio.h>
void main()
{
int i,j,n;
int a[100][100];//行标和列标的最大值100可以自行修改 不过这里100足够了
printf("enter n(n<=100):");//因为预定义的数组最大就是100 因此不要超过数组行标和列标的最大值
scanf("%d",&n);
for(i=0;i<n;i++)
{
if(i%2==0)//判断行数是偶数 那么就是降序
{
for(j=0;j<n;j++)
a[i][j]=i*n+(j+1);
}
else//行数是奇数 就升序
{
for(j=n-1;j>-1;j--)
a[i][j]=i*n+(n-j);
}
}
for(i=0;i<n;i++)//输出数组a
{
for(j=0;j<n;j++)
{
printf("%d\t",a[i][j]);
}
printf("\n\n\n");
}
}

希望能帮助你哈

⑸ c语言输入一个正整数,打印n*n方阵

程序不能运行的主要原因是定义数组的时候用变量做下标,其他的错误我用注释给出了
#include<stdio.h>
intmain()
{
intn,i,j,sum=0;//sum要初始化
inta[6][6]={0};//数组不能用变量做下标
printf("请输入方阶的阶数n<n<=n<=6>: ");
scanf("%d",&n);
printf("请输入%d阶方阵各元素的值: ",n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
/*这两句删除
printf("%4d",a[i][j]);
printf(" ");*/
}
printf(" ");
printf("该%d阶方阵为: ",n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%4d",a[i][j]);
printf(" ");
}
printf(" ");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
if(i==j)//判断相等是==
sum=sum+a[i][j];
}
printf(" 该方阵主对角线元素的和为%d",sum);
}

⑹ C语言给一个由英文大写字母组成的字符串,串长为n*n(0<n<11),请将这个按Z字形排列输出这个字符方阵。

#include<stdio.h>
#include<string.h>
#defineN11
inti,j;
intk;
intln;
intn;
chars[N*N];
chara[N][N];
voidgo_right(){
j++;
}
voidgo_left(){
j--;
}
voidgo_down(){
i++;
}
voidgo_up(){
i--;
};
voidleft_down(){
go_left();
go_down();
}
voidright_up(){
go_right();
go_up();
}
voidgo(){
while(1){
if(j+1<n){
go_right();a[i][j]=s[k];k++;//右移
if(k==ln+1)return;
}
else{
go_down();a[i][j]=s[k];k++;
if(k==ln+1)return;
}

while(1){//左下移动
left_down();
if(j>=0&&i<n){
a[i][j]=s[k];k++;
if(k==ln+1)return;
}
elsebreak;
}
j++;i--;//还原一步

if(i+1<n){
go_down();a[i][j]=s[k];k++;//向下
if(k==ln+1)return;
}
else{
go_right();a[i][j]=s[k];k++;//右移
if(k==ln+1)return;
}

while(1){//右上移动
right_up();
if(i>=0&&j<n){
a[i][j]=s[k];k++;
if(k==ln+1)return;
}
elsebreak;
}
i++;j--;//还原一步
}
}
voidprint(){
i=j=0;
for(i=0;i<n;i++){
for(j=0;j<n;j++)
printf("%c",a[i][j]);
printf(" ");
}
}
voidZ(chars[]){
ln=strlen(s);
n=(int)sqrt(ln);
k=0;
i=j=0;
a[i][j]=s[k];k++;
go();
print();
return;
}
intmain(){
while(scanf("%s",s)!=EOF){
Z(s);
}
return0;
}

⑺ c语言这个怎么要填13个数才能把矩阵打印出来,填12个数就一直回车无限循环

您好,很高兴回答您的问题。
在scanf函数中,包含有两部分内容,一个由双引号括起来的格式字符,包括有以%开头的格式符、以\开头的转义字符和普通字符。其中格式符就是需要输出的数据的格式、即为类型,转义字符会转变成相关含义显示,普通字符会照原样输出。这里面的%d是格式符,后面的空格是普通字符,没有转义字符,那么在输入的时候就要输入一个数字后再输入一个空格,系统才能结束输入。这个就是为什么要多输入一个字符的原因。去掉%d后面的空格,那么就不会出现这个问题了。

⑻ C语言,输出字母方阵

#include<stdio.h>

main()
{
charc=65;
inti=0,j=0,n=0;
scanf("%d",&n);

for(i=0;i<n;i++)
{
for(j=i;j<n+i;j++)
{
printf("%c",c+j%26);
}
printf(" ");
}
}
26
ABCDEFGHIJKLMNOPQRSTUVWXYZ
BCDEFGHIJKLMNOPQRSTUVWXYZA
CDEFGHIJKLMNOPQRSTUVWXYZAB
DEFGHIJKLMNOPQRSTUVWXYZABC
EFGHIJKLMNOPQRSTUVWXYZABCD
FGHIJKLMNOPQRSTUVWXYZABCDE
GHIJKLMNOPQRSTUVWXYZABCDEF
HIJKLMNOPQRSTUVWXYZABCDEFG
IJKLMNOPQRSTUVWXYZABCDEFGH
JKLMNOPQRSTUVWXYZABCDEFGHI
KLMNOPQRSTUVWXYZABCDEFGHIJ
LMNOPQRSTUVWXYZABCDEFGHIJK
MNOPQRSTUVWXYZABCDEFGHIJKL
NOPQRSTUVWXYZABCDEFGHIJKLM
OPQRSTUVWXYZABCDEFGHIJKLMN
PQRSTUVWXYZABCDEFGHIJKLMNO
QRSTUVWXYZABCDEFGHIJKLMNOP
RSTUVWXYZABCDEFGHIJKLMNOPQ
STUVWXYZABCDEFGHIJKLMNOPQR
TUVWXYZABCDEFGHIJKLMNOPQRS
UVWXYZABCDEFGHIJKLMNOPQRST
VWXYZABCDEFGHIJKLMNOPQRSTU
WXYZABCDEFGHIJKLMNOPQRSTUV
XYZABCDEFGHIJKLMNOPQRSTUVW
YZABCDEFGHIJKLMNOPQRSTUVWX
ZABCDEFGHIJKLMNOPQRSTUVWXY
Pressanykeytocontinue

⑼ C语言怎么在同一位置多次打印矩阵

通过字符控制是很难做出来的,而且毫不值得,你基本需要控制光标到特定位置进行重绘,这需要操作系统支持,而这种支持似乎越来越少了,已经没有啥API可以让你直接做了。

这种东西建议学习windows编程,然后用图形界面做。

⑽ C语言如何打印螺旋方阵最好能够说说思路。

int n为阶数,具体打印格式你可以按需要改 void op(int n) { int i=0,j=0; int*(*p); int temp = 1; int t; p = (int**)malloc(sizeof(int*)*n); for (t=0;t<n;t++) { p[t]=(int*)malloc(sizeof(int)*n); } for (t=0;t<((float)n/2);t++) { for (;j<n-t;j++) p[i][j] = temp++; j--; i++; for(;i<n-t;i++) p[i][j] = temp++; i--; j--; for(;j>=t;j--) p[i][j] = temp++; j++; i--; for(;i>t;i--) p[i][j] = temp++; j++; i++; } for (i=0;i<n;i++) { for (j=0;j<n;j++) { printf(\"%3d \",p[i][j]); } printf(\"\\n\"); } }