此代码用于打印带有星号的模式 如果输入数字,例如5 然后程序应该打印以下模式。它应该根据给定的数字按顺序打印*然后减少
*****
****
***
**
*
但它只打印一行。请告诉我这里有什么问题。
#include<stdio.h>
int main()
{
int lines,lines2;
printf("Enter the number of lines : ");
scanf("%d",&lines);
lines2=lines;
for(;lines>0;lines--) {
for(;lines2>0;lines2--){
printf("*");
}
}
printf("\n");
return 0;
}
答案 0 :(得分:1)
首先:以下行应放在两个循环之间:
lines2=lines;
第二名:以下一行应放在外部循环的{
之前:
printf("\n");
最终解决方案是:
#include<stdio.h>
int main()
{
int lines,lines2;
printf("Enter the number of lines : ");
scanf("%d",&lines);
for(;lines>0;lines--)
{
lines2=lines;
for(;lines2>0;lines2--)
{
printf("*");
}
printf("\n");
}
return 0;
}
答案 1 :(得分:0)
lines2=lines;
for(;lines>0;lines--)
{ for(;lines2>0;lines2--)
您只需在外循环之前初始化lines2
;这就是为什么超过第一行它始终为零。您应该按每行重置它,指定当前值lines
。这可能是你想要做的:
for(; lines > 0; --lines) {
for(lines2 = lines; lines2 > 0; --lines2) {
答案 2 :(得分:0)
看到这个! 它有效!
#include<stdio.h>
main()
{ int lines,lines2;
printf("Enter the number of lines : ");
scanf("%d",&lines);
lines2=lines;
for(;lines>0;lines--)
{ for(lines2=lines;lines2>0;lines2--)
{ printf("*");
}
printf("\n");
}
}
答案 3 :(得分:0)
你刚改变了几行的地方。你需要将换行符放到第一个循环中:
<div class="selector-wrap">
<div>
<span>12</span>
<div class="control-wrap">
<div class="caret-wrap">
<span class="caret">▲</span>
</div>
<div class="caret-wrap">
<span class="caret">▼</span>
</div>
</div>
</div>
<div>
<span>30</span>
<div class="control-wrap">
<div class="caret-wrap">
<span class="caret">▲</span>
</div>
<div class="caret-wrap">
<span class="caret">▼</span>
</div>
</div>
</div>
<div>
<span>AM</span>
</div>
</div>