这个C程序菱形输出无法通过编译运行,咋回事呢?请大家指点下
这个C程序菱形输出无法通过编译运行,怎么回事呢?请大家指点下
int main(int argc, const char *argv[]) {
draws(4);
return (0);
}
void draws(int row)
{
int endN,endS,n,m,i;
for(i =1;i< row*2; i++ )
{
if(i<= row){
endN = row-i;//该行的空格数目
endS = (i-1)*2 +1; //该行的星数目
}
else
{
endN = i-row;
endS = (row-(i-row)-1)*2+1;
}
//输出空符号
for(n=0; n< endN; n++)
{
printf("");
}
//输出星符号
for(m=1 ; m <= endS; m++)
{
printf("*");
}
//输出换行
printf("\n");
}
}
------解决方案--------------------
int main(int argc, const char *argv[]) {
draws(4);
return (0);
}
void draws(int row)
{
int endN,endS,n,m,i;
for(i =1;i< row*2; i++ )
{
if(i<= row){
endN = row-i;//该行的空格数目
endS = (i-1)*2 +1; //该行的星数目
}
else
{
endN = i-row;
endS = (row-(i-row)-1)*2+1;
}
//输出空符号
for(n=0; n< endN; n++)
{
printf("");
}
//输出星符号
for(m=1 ; m <= endS; m++)
{
printf("*");
}
//输出换行
printf("\n");
}
}
------解决方案--------------------
- C/C++ code
#include <stdio.h> #include <stdlib.h> void draws(int); int main(int argc, const char *argv[]) { draws(4); system("pause"); return (0); } void draws(int row) { int endN,endS,n,m,i; for(i =1;i< row*2; i++ ) { if(i<= row){ endN = row-i;//该行的空格数目 endS = (i-1)*2 +1; //该行的星数目 } else { endN = i-row; endS = (row-(i-row)-1)*2+1; } //输出空符号 for(n=0; n< endN; n++) { printf(" "); } //输出星符号 for(m=1 ; m <= endS; m++) { printf("*"); } //输出换行 printf("\n"); } }