这一个专题比较简单:直接上代码,不会的请留言。
图形方法的输出只要把握一点:for外循环是行,内循环控制是列
注意这是多点测试。输入的时候需要注意:
#include<iostream>
using namespace std;
int main()
{
int h;
while(scanf("%d",&h)!=EOF) {
for(int i=1;i<=h;i++)
{
for(int j=1;j<=2*h-2*i;j++)
cout<<' ';
for(int k=1;k<=h+2*i-2;k++)
cout<<'*';
cout<<endl;
}
}
return 0;
}
问题B:
代码如下:
留空
在这里插入代码片
题目C:
#include <iostream>
using namespace std;
int main()
{
int m,h;
cin>>m;
for(int i=0;i<m;i++)
{
cin>>h;
for(int j=0;j<h;j++)
{
for(int k=0;k<h-1-j;k++)
cout<<" ";
for(int k=0;k<h+2*j;k++)
cout<<"*";
for(int k=0;k<h-1-j;k++)
cout<<" ";
cout<<endl;
}
}
return 0;
}
问题D:
还是需要注意多点测试的问题:
#include <iostream>
using namespace std;
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
for(int i=n;i>1;i--)
{
int k;
for(k=0;k<n-i;k++)
cout<<" ";
for(int j=i;j>0;j--)
{
cout<<"*";
if(j!=1)cout<<" ";
}
if(i!=1) cout<<endl;
}
for(int i=n;i>0;i--)
{
for(int k=0;k<i-1;k++)
cout<<" ";
for(int j=0;j<n-i+1;j++)
{
cout<<"*";
if(j!=n-i) cout<<" ";
}
cout<<endl;
}
}
}
这一题和打印菱形算是打印图形里比较好的题目了。处理的细节比较多
另外补充一题不是codeup和PAT的题目吧。其实输入的逻辑还是要注意的。
带入如下:因为要使用的是纯C语言:代码如下:
在这里插入代码片