我不是要输入字面值字符串。 这样说吧,比如, 我输入N, M,其中N ==4, M==4,那么运行后,将输出4行,以4开头,每一行从右向左输出。如图
我不是要输入字面值字符串。 这样说吧,比如, 我输入N=4, M=4,那么运行后,将输出4行,以4开头,每一行与4对齐从右向左输出。
追答那你的4,85,987,4831是哪里来的,自己手动输入还是程序计算的结果。
追问比如我输入4 4,前面数字代表4行, 并从4开头, 输出结果如上图所示
追答那4我知道了,但是,我的问题是后面的三行65,987,4831怎么出来的,这个你得告诉我吧,我也看不出来这些数字有什么规律。
追问比如我输入4,4, 前面的4表示我4行, 从4开始输出, 又比如5 6 表示有5行, 从6开头输出, 87 219.……到9的话,将9赋值为1,重新输出,直到输出达到5行。我说的很直白吧
追答这是你想要的
#include
#include
/* This function is used to reverse the output */
void reverse(int num[], int cnt)
{
int pre, last = cnt;
int swap;
for (pre = 0; pre 0 ; len--) {
i = n - len + 1;
while (i-- > 0) {
printf("%d ", s++);
if (s > 9)
s = 1;
}
putchar('\n');
}
}
/* This function is used to process the even s, and print the triangle */
int even_s(int n, int s)
{
int i;
int len = n;
int empty;
int *num = (int*)malloc(sizeof(int)*n);
int cnt;
for (; len > 0 ; len--) {
i = n - len + 1;
empty = n - i;
cnt = 0;
while (i-- > 0) {
while (empty-- > 0)
printf(" ");
num[cnt++] = s++;
if (s > 9)
s = 1;
}
reverse(num, --cnt);
putchar('\n');
}
delete num;
return 0;
}
int main()
{
int n, s;
printf("Please input the number of n: \n");
scanf("%d", &n);
printf("Please input the number of s: \n");
scanf("%d", &s);
if (s % 2 != 0)
odd_s(n, s);
else
even_s(n, s);
return 0;
}
代码太冗长了,
追答这是我找的答案,经过修改可以运行,太长也没办法了
本回答被网友采纳我不是要输入字面值字符串。 这样说吧,比如, 我输入N, M,其中N ==4, M==4,那么运行后,将输出4行,以4开头,每一行从右向左输出。如图
c语言 右对齐输出和左对齐输出谁能举个例子给我看 这儿没有电脑_百度...
int main(){printf("数字输出占10列,右对齐\\n%10dOK\\n",9999);printf("\\n数字输出占10列,左对齐\\n%-10dOK\\n",9999);return 0;}
C语言中,每行输出n个数,都对齐,怎么弄
"%-md":左对齐,若m比实际少时,按实际输出。(m为整数)"%md":右对齐,若m比实际少时,按实际输出。我自己编了一个,给你看看实际效果:include<stdio.h> define N 5 int main(){ int i,j,a[N][N];for(i=0;i<N;i++)for(j=0;j<N;j++)scanf("%d",&a[i][j]);for(i=0...
编写一个c语言程序,输出是下图,注意输出格式就是那样,前面向右靠拢,后面...
C的输出格式默认就是右边对齐,加上- 控制字符就是左边对齐 不过为了这么多位的精确值,最好用double,格式是%lf
C语言,怎么样才能输出对齐了
有两种方法可以做到:\\x0d\\x0a1 用制表符\\t实现对齐。\\x0d\\x0a制表符\\t输出的时候,会移动输出光标,实现对齐效果。所以可以在输出的对应位置,增加\\t来实现对齐。\\x0d\\x0a要求每行相同列输出占用空间差别不可以太大。\\x0d\\x0a\\x0d\\x0a2 在格式字符中加入占用宽度控制数字。\\x0d\\x0...
C语言中如何对齐输出
printf ("编号\\t数量\\t价格\\t名称du\\n");用\\t隔开输入的信息名称,在输入的时候,每输入一个数就tab一下,就可以对齐了。换码符'\\t',表示水平制表位(horizontal tab),它的作用是将光标移到最接近8的倍数的位置,使得后面的输入从此开始。换句话说,让所有的数据都紧跟在制表符后面输出。includ...
C语言printf格式化输出如何对齐列?如图:
你可以给定输出场宽,给定 左对齐 还是右对齐。例如 %16s 右对齐; %-16s 左对齐; 场宽16:include <stdio.h> int main(){ int i,j;char a[][4][16]={"A:956->956","A:000","A:000","A:000","B:154","B:JJJ","B:JJJ","B:JJJ"};for (j=0;j<2;j++){ for (...
C语言怎么实现左对齐?
```c#include int main(void) { int i = 12345678; printf("**%-10d**", i); \/\/ 输出的数字将左对齐,不足10位用空格填充 printf("**%10d**", i); \/\/ 输出的数字将右对齐,不足10位用0填充 return 0;}```如果你在寻找更丰富的C语言学习资源,我强烈推荐关注公众号...
在C语言中,下面这段程序运行后输出如何对齐?
printf("%d*%d=%d%c",j,i,i*j,i==j?'\\n':32);这句改成 printf("%d*%d=%2d%c",j,i,i*j,i==j?'\\n':32);2表示最后的相乘结果要占两个字符的位置,这样就对齐了 如果要左对齐,也就是输出紧密的话写成这样:printf("%d*%d=%-2d%c",j,i,i*j,i==j?'\\n':32);前面...
C语言输出怎么对齐
include <stdio.h>#include <string.h>int main(){ int a,b; scanf("%d %d", &a,&b); printf("%s\\n","Octal Decimal Hexadecimal"); printf("%*o %*d %*x\\n%*o %*d %*x",-strlen("Octal"),a,-strlen("Decimal"),a,-strlen("Hexadecimal"),a,-strlen("Octal...
C语言的输出怎么实现右对齐?
设置一个宽度,默认就是右对齐,左边填充空格:printf("%10d\\n",123);看看结果