打印如下图案,共19行,只能有一个for循环(题目已经提供)
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
*****************
***************
*************
***********
*********
*******
*****
***
*
for(i=0;i<19;i++)
{
}
在网上搜寻了些解答,如下:
1.
#include<iostream>
#include<iomanip>
#include<string>
using namespace std;
int main()
{
int a[2]={-1,1};
string str="*******************";
int i=0,j=9,t=1;
for(i=0;i<19;++i)
{
j+=a[i<10];
if(i!=0)t=t+a[i<10]*2;
cout<<setw(j)<<right<<str.substr(0,t)<<endl;
}
return 0;
}
2.
#include<stdio.h>
#include<string.h>
{
char * tempStr = "*******************";
char * blank = " ";
char * dataStr [20];
char blankstr[10];
for ( i=0; i<19; i++)
{
memset(dataStr, 0, 20);
memset(blankstr,0,10);
{
memcpy(blankstr,blank,9-i);
memcpy(dataStr, tempStr, (i+1)*2-1);
}
else
{
memcpy(blankstr,blank,i-9);
memcpy(dataStr, tempStr, (19-i)*2-1);
}
printf("%s",blankstr);
printf("%s\n", dataStr);
}
return 0;
}