C语言输出如何右对齐

这是一道题,要求用for语句
*****
****
***
**
*
#include <stdio.h>#include <stdlib.h>
int main(){ int n, i, k; printf("Please enter line number: "); scanf("%d", &n);
for(i=n; i >=1 ; i--) { for(k=1; k <= i; k++) printf("*"); printf("\n"); }
return 0;
}
这是我编写的,但是问题来了,输出结果是这样

而不是
*****
****
***
**
*
请问怎么实现右对齐
设置宽度也不管用,网上查的到我都看了,printf(“%10d”, *)根本就是错的
要真正能解决问题的

代码如下:

#include <stdio.h>

int main(int argc, char *argv[])
{
int i = 6789 ;
float j = -4.567 ;

printf("%-10d", i); //左对齐
printf("100\n");   //这一行只是为了验证上一行是否是10个字符的长度

printf("%-12.5f", j);//左对齐
printf("100\n");   //这一行只是为了验证上一行是否是12个字符的长度

printf("%10d", i); //右对齐
printf("100\n");   //这一行只是为了验证上一行是否是10个字符的长度

printf("%10.5f", j);//右对齐
printf("100\n");   //这一行只是为了验证上一行是否是10个字符的长度

return 0;
}

输出结果:

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-25

anchor选择left

第2个回答  2014-10-19
试试这个:
for(i=n; i >=1 ; i--)
{
for(k=1; k <= n; k++)
{
if(i + k <= n)
printf(" "); //先打印该行应填补的空格
else
printf("*"); //后打印该行所需的*,空格数和*数总和为n
}
printf("\n");
}追问

这样不是10 9 8 7 6 5 4那样了,行与行之间*变成10 9 7 5 3 1

追答

我验证了一下,是可以的

本回答被提问者和网友采纳
第3个回答  2014-10-19
for(i=1;i<=n;i++){for(k=i;k<=n,k++)}追问

不对,还是原来那样

追答

不会吧,是想改成上三角吗?

C语言的输出怎么实现右对齐?
设置一个宽度,默认就是右对齐,左边填充空格:printf("%10d\\n",123);看看结果

c语言右对齐输出怎么写
C语言输出无法设置默认为右对齐,只能通过输出格式指定为右对齐。1、C语言中要使用右对齐,只能使用printf进行格式化输出;2、要进行右对齐,必须指定输出宽度,否则输出时无法确定对齐位置;3、设置输出宽度,可以在输出格式前加代表宽度的数字,比如 %14d,表示输出宽度为14个字符;4、设置输出宽度后,默认...

c语言怎么让文字右对齐
C语言默认右对齐,如果不做特别改动,默认右对齐。可以根据需要为输出样式加上宽度,例如:printf(“%10d”),如果需要左对齐,则在占位符前加上负号,例如:printf(“%-10d”)。

c语言的输出默认的是左对齐还是右对齐?
在%和d之间加上数字宽度,就可以右对齐。说明:数字宽度为10,如果要打印的位数小于10,左边补足空格;如果要打印的位数大于10,则打印所有的数字,不会截断。

C语言输出如何右对齐
); \/\/这一行只是为了验证上一行是否是12个字符的长度printf("%10d", i); \/\/右对齐printf("100\\n"); \/\/这一行只是为了验证上一行是否是10个字符的长度printf("%10.5f", j);\/\/右对齐printf("100\\n"); \/\/这一行只是为了验证上一行是否是10个字符的长度return 0;}输出结果:...

C语言,怎么样才能输出对齐了?
1 用制表符\\t实现对齐。制表符\\t输出的时候,会移动输出光标,实现对齐效果。所以可以在输出的对应位置,增加\\t来实现对齐。要求每行相同列输出占用空间差别不可以太大。2 在格式字符中加入占用宽度控制数字。C语言使用printf输出时,每个控制字符均可以写成 nC的形式,如%10d, %12f, %8c, %16s等等...

C语言中如何对齐输出
printf ("编号\\t数量\\t价格\\t名称du\\n");用\\t隔开输入的信息名称,在输入的时候,每输入一个数就tab一下,就可以对齐了。换码符'\\t',表示水平制表位(horizontal tab),它的作用是将光标移到最接近8的倍数的位置,使得后面的输入从此开始。换句话说,让所有的数据都紧跟在制表符后面输出。includ...

C语言输出如何右对齐?
以下分别输出右对齐的整数、字符和字符串:printf("%-10d%-5c%-20s",a,c,s);

c语言 右对齐输出和左对齐输出谁能举个例子给我看 这儿没有电脑_百度...
include<stdio.h> int main(){printf("数字输出占10列,右对齐\\n%10dOK\\n",9999);printf("\\n数字输出占10列,左对齐\\n%-10dOK\\n",9999);return 0;}

C语言的输出格式问题
回答:简单点,整数右对齐,小数以小数点对齐,可以修改为: printf("%2d %15.6f\\n",i,RaiseRealToPower(10,i)); 其中的%2d是指输出整数2位以下的用空格补足,右对齐;%15.6f也是右对齐,其中的15是指所有的位数(不是小数点前的),6是指小数点后保留的位数。 但是这样小数点后的位数不是刚刚...

相似回答