我刚刚开始学习C,我正在使用的书中有一个问题是:
使用嵌套循环生成以下模式:
$
$$
$$$
$$$$
$$$$$
当然,我被卡住了。
#include <stdio.h>
int main (void)
{
int i, j;
char ch = '$';
for(i = 1; i < 5; i++)
{
for(j = 1; j <=5; j++)
printf("%c", ch);
printf("\n");
}
return 0;
}
答案 0 :(得分:4)
您需要做的事情的逻辑非常简单:您需要打印5行,其中i
行已经i
'$'
。
伪代码看起来像这样:
for any i from 1 to 5:
print '$' times i
print newline
print '$' times i
可能如下所示:
for any j from 1 to i:
print '$'
使用C语法重写它不应该太难。
答案 1 :(得分:2)
由于用代码回答这个问题是作弊,这里有一些提示:
$
s。printf
除非您告诉它,否则不会添加换行符,因此对printf
的连续调用可以将字符放在同一行上。如果您的代码不起作用,请将其发布。我们很乐意帮助您解决问题。
修改:根据您的示例代码,您遇到了一些非常小的问题。
首先,在您的外部循环中,您需要<=
而不是<
。这会让你达到5.其次,在你的内循环中,j <= 5
应该是j <= i
。虽然我会编写内部循环,其中j从0开始,< i
,这只是一种风格偏好。
如果您不确定,printf("%c", ch)
也相当于printf("$")
。
作为参考,这是我的第一个答案。它与你的非常相似:
#include <stdio.h>
int main()
{
int line, dollar;
for (line=1; line <= 5; line++)
{
for (dollar = 0; dollar < line; dollar++)
{
printf ("$");
}
printf ("\n");
}
return 0;
}
答案 2 :(得分:0)
for( i = 1; i <= 5; i++ )
i-1
(如果您愿意,则需要1到i)。 for( j = 0; j < i; i++ )
putchar()
打印字符常量。答案 3 :(得分:0)
#include <stdio.h>
int main (void)
{
int i, j;
char ch = '$';
for(i = 1; i < 5; i++)
{
for(j = 1; j <=i; j++)
printf("%c", ch);
printf("\n");
}
return 0;
}
描述: 第一个for循环用于打印行.. 和嵌套for循环是for&#39; $&#39;必须打印
答案 4 :(得分:0)
请尝试此代码,如果您想要一般化(意味着用户可以提供任何数字来打印模式,您可以从用户那里获取输入)。比如n然后替换为(row = 1; row&lt; = 5; row ++)为for(row = 1; row&lt; = n; row ++)。
#include<stdio.h>
int main()
{
int row, col;
for(row = 1; row <=5; row++)
{
for(col = 0; col < row; col++)
printf("$");
printf("\n");
}
return 0;
}
答案 5 :(得分:-1)
#include <stdio.h>
int main (void)
{
for (int i = 1; i <= 6; i++)
{
for (int j = 1; j <= 6; j++)
{
if (i - j >= 0)
printf("$");
}
printf("\n");
}
return 0;
}
答案 6 :(得分:-2)
这很简单,为什么呢,因为在它里面你只想以行和列的形式打印,而且应该按顺序递增。在第一个for循环中,您将打印行并使用包含for循环,您需要为列执行此操作。
答案 7 :(得分:-2)
首先,一些关于循环的基本内容是 - 当外循环执行一次时,内循环将完成其整个迭代。 在你的情况下 - 对于(i = 1; i&lt; 5; i ++)//对于i的每个变化值的外部循环,例如i = 1,2,3,4 内循环(j = 1; j <= 5; j ++)//将完成整个迭代(即5次因为你使用j = 1到j <= 5。
现在你问题的问题在于 -
for(i = 1; i < 5; i++) //here is problem this will run only 4 time because i<5, and you require 5 times as according to your output given,replace it with i<=5
{
for(j = 1; j <=5; j++) //here is also because you are using j<=5, as I mention above it will run 5 times for each value of i (in outer loop),so replace j<=5 by j<=i, because for each change value of i, you require same time execution of inner loop to print the value of "ch" variable)
printf("%c", ch);
printf("\n");
}
所以这里是修改后的代码
int main(){
// your code goes here
int i, j;
char ch = '$';
for(i = 1; i < =5; i++) // outer loop
{
for(j = 1; j <=i; j++) // inner loop
printf("%c", ch);
printf("\n"); // to move on next line after the complition of inner loop
}
return 0;
}
这可能对你有帮助。