本文主要是介绍用*号组合成一个三角形,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
编程爱好者上的题目,一个一个收集,同样的题目做成这样太厉害了
用*号组合成一个三角形!行数由键盘输入(范围为:1~20,输入超过范围,则提示出错)。如:
输入一个数4,则:
输出以下组合:
*
***
*****
*******
共四行
如输入的是6,则:
*
***
*****
*******
*********
***********
共六行
如输入的是0,则输出
out of range(1~20),please retype:
#include < stdio.h >
int main()
... {
int i,j,n;
printf("Please enter the number of col(1~20): ");
while(1)
...{
scanf("%d",&n);
if(1<=n&&n<=20) break;
else
printf("out of range(1~20),please retype: ");
}
for(i=0;i<n;i++)
...{
for(j=i;j<n-1;j++) printf(" ");
for(j=0;j<2*i+1;j++) printf("*");
printf(" ");
}
return 0;
}
2
#define _ "****************************************"
#define o_o sizeof(_)-1
main(o,n) ... {printf("%*s ",o_o+o/2,_+o_o-o,o==1&&scanf("%d",&n)),++o<2*n?main(o+1,n):main(1,n);}
用TC编译
#include < stdio.h >
extern const char _[] = " **************************************** " ;
const int o_o = sizeof (_) - 1 ;
void f( int o, int n) ... {
if (o==1) scanf("%d",&n);
printf("%*s ",o_o+o/2,_+o_o-o);
++o<2*n?f(o+1,n):f(1,n);
}
int main( int argc) ... {
f(argc,0);
return 0;
}
3
#include < iostream >
using namespace std;
const char A[] = " "
" *************************************** " ;
或 const char A[] = " *************************************** " ;
int main()
... {
int n = 0;
cin >> n;
for (int i = 0; i < n; ++i) ...{
cout.write(A + 40 - n + i, n + i) << endl;
}
}
#include <stdio.h>
#include <ctype.h>
#define MAX 20
#define MIN 1
void fun(int i, int n);
int getnum(int lim);
main()
{
int i;
while((i = getnum(MAX)) != -1)
if(i)
fun(i, i);
}
int getnum(int lim)
{
char c[MAX];
int i, j;
for(i = 0 ; isspace(c[i] = getchar()); )
;
if( !isdigit(c[i]))
if(c[i] == EOF)
return -1;
else{
printf("please enter a number!/n");
return 0;
}
for( ; --lim && isdigit(c[++i] = getchar()); )
;
c[i] = '/0';
if( (j = atoi(c)) <= MAX && j >= MIN)
return j;
else{
printf("out of range: %d - %d/n",MIN,MAX);
return 0;
}
}
void fun(int i, int n)
{
int j;
for( j = i - 1; j > 0 ; j--)
putchar(' ');
for( ; j < 2 * (n - i) + 1 ; j++)
putchar('*');
putchar('/n');
if(--i)
fun(i,n);
}
5
/*Odd Asterisks*/
#include<stdio.h>
#include<conio.h>
int main(void)
{
int i,j,k,n,flag=1; /*flag是控制循环的变量*/
char ch;
while(flag)
{
printf("/nContinue? (Y/N)/n");
ch=getch();
if(ch=='N'||ch=='n')
{ /*输入'n' 或者 'N'则退出循环*/
printf("/nBye!/n");
getch();
flag=0;
}
else if(ch=='Y'||ch=='y')
{ /*输入'y'或者'Y'则重复进行下面的操作*/
printf("/nInput the number of lines: /n");
scanf("%d",&n);
if(n>20)
{ /*判断n是否大于20,大于20则提示重新输入*/
printf("/nError input. Please make sure the number you entered");
printf(" is no bigger than 20. Press any key to enter again./n");
getch();
}
else
{
for(i=0;i<n;i++)
{ /*控制行的输出*/
for(j=n;j>i;j--) /*控制星号前空格的输出*/
printf(" ");
for(j=0;j<=i;j++) /*控制一左边一半星号的输出*/
printf("*");
for(k=0;k<i;k++) /*控制一右边一半星号的输出*/
printf("*");
printf("/n");
}
}
}
else
{ /*输入'n'、'N'、'y'、'Y'之外的键则提示重新输入*/
printf("/nError input! Press any key to input again, please./n");
getch();
}
}
return 0;
}
这篇关于用*号组合成一个三角形的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!