C语言中运用函数输出三角形星号

老师要求运用函数的无参数和有参数两种方法,求救啊,在线等答案

无参函数
#include <stdio.h>
#include <math.h>
#define n 3
void f()
{
int i,j,k;
for(i=1;i<=2*n+1;i++)
   {
    j=abs(n+1-i);
    for(k=1;k<=j;k++)
    printf(" ");
    for(k=1;k<=2*n+1-2*j;k++)
    printf("*");
    printf("\n");
   } 
}
int main()
{
f();
}

有参函数
#include <stdio.h>
#include <math.h>
void f(int n)
{
int i,j,k;
for(i=1;i<=2*n+1;i++)
   {
    j=abs(n+1-i);
    for(k=1;k<=j;k++)
    printf(" ");
    for(k=1;k<=2*n+1-2*j;k++)
    printf("*");
    printf("\n");
   } 
}
int main()
{
f(3);
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-26
#include<stdio.h>
void f();
void g(int );
main()
{
int k;
printf("无参数:\n");
f();
printf("\n有参数:\n输入图形的行数(奇数)\n");
scanf("%d",&k);
g(k);
}
void f()
{
int i,j,n=3,m=1;
for(i=0;i<4;i++)
{
for(j=0;j<n;j++)
printf(" ");
for(j=0;j<7-n*2;j++)
printf("*");
for(j=0;j<n;j++)
printf(" ");
printf("\n");
n--;

}
for(i=0;i<3;i++)
{
for(j=0;j<m;j++)
printf(" ");
for(j=0;j<7-2*m;j++)
printf("*");
for(j=0;j<m;j++)
printf(" ");
printf("\n");
m++;
}
}

void g(int k)
{
int i,j,n=(k-1)/2,m=1;
for(i=0;i<k/2+1;i++)
{
for(j=0;j<n;j++)
printf(" ");
for(j=0;j<k-n*2;j++)
printf("*");
for(j=0;j<n;j++)
printf(" ");
printf("\n");
n--;

}
for(i=0;i<k/2;i++)
{
for(j=0;j<m;j++)
printf(" ");
for(j=0;j<k-2*m;j++)
printf("*");
for(j=0;j<m;j++)
printf(" ");
printf("\n");
m++;
}

}
我也不知道 我这样理解对不对。。。
第2个回答  2013-06-26
没分没法答
相似回答