我很难如何让我的输出显示如下:
a
aa
aaa
我当前的输出显示了这一点:
a
aa
aaa
以下是我的代码:
void displayA(int a){
for(int i = 0; i < a; i++)
printf("a");
}
int main(void){
displayA(1);
printf("\n");
displayA(2);
printf("\n");
displayA(3);
printf("\n");
return 0;
}
有什么建议吗?感谢。
感谢您的回答。我意识到我的编码逻辑是错误的。使用下面的建议帮我搞清楚了。谢谢!
答案 0 :(得分:11)
您可以使用printf("%*s", <width>, "a");
打印由变量号右对齐的任何文本。空间。
检查here live。
答案 1 :(得分:1)
void staircase(int n) {
int counter = n-1;
for(int i = 1; i <= n; i++){
for(int m = 0; m < counter; m++){
printf(" ");
}
for(int a = 0; a < i; a++){
printf("%c", '#');
}
counter--;
printf("\n");
}
}
如果我们把这个函数称为staircase(6);
它打印:
#
##
###
####
#####
######
答案 2 :(得分:0)
此处参数w
确定将a
与
void displayA(int a, int w){
int i;
for(i = 0; i < w; i++) {
if( i < w - a ) printf(" ");
else printf("a");
}
}
答案 3 :(得分:0)
这可能会有所帮助。
打印阶梯模式:
#
##
###
####
#####
######
以下是代码:
#include<stdio.h>
void print(int n)
{ int i,j;
for(i=1;i<=n;i++)
{ printf("%*s",n-i,""); //for right alignment by n-1 spaces.
for(j=0;j<i;j++)
{
printf("%s","#");
}
printf("\n");
}
}
int main(void)
{
print(6);
system("pause");
return 0;
}
答案 4 :(得分:0)
我对您所做的void displayA()
做了一些小改动:
void displayA(int a)
{
for(int i = 0; i < 3; i++)
{
if (i >= 3 - a)
{
printf("a");
}
else
{
printf(" ");
}
}
}
上面编写的代码可以正常工作。
还有其他方法,也可以使用这些方法代替我在void displayA()
中所做的更改。您只需要设置线条的宽度,然后将要打印的文本右对齐即可。
但是,您制作的整个程序以及我对该函数所做的修改,都将仅限于三个字母。