当前位置: 代码迷 >> C语言 >> [求助]如何用while来写这个?
  详细解决方案

[求助]如何用while来写这个?

热度:141   发布时间:2007-08-11 01:14:58.0
#include <stdio.h>
main()
{
int i=1;
while(i<=5)
{
switch(i)
case 1;
printf("*");
break;
.......
}
}
行不?
----------------解决方案--------------------------------------------------------

#include <stdio.h>
void main()
{
for(int i=1;i<5;i++)

if (i%2!=0)
{
for(int j=1;j<=i;j++)
{
printf("*");
}
printf("\n");
}
}
怎么是这啊
*
***


----------------解决方案--------------------------------------------------------

/* Note:Your choice is C IDE */
#include "stdio.h"
#include "math.h"
void print ( int numb );
int fun ( int shu ) ;
main()
{

int n = 1 ;
while ( n<=3 )
{
print ( fun (n) );
printf ("\n");
n++;

}

while ( n <= 5 )
{
print ( fun (n) );
printf ("\n");
n++;

}

}

int fun ( int shu )

{
return ( 5 - 2 * abs (shu - 3) );
}


void print (int numb )

{
int j;
for (j = 1 ; j <= numb ; j++ )
printf ("*");

}


----------------解决方案--------------------------------------------------------
上面的绝对正确~~~
----------------解决方案--------------------------------------------------------

看看我的,调试通过~~~ 可以通过修改N的值来指定显示的行数,N为*最长的那一行的行数

#include"stdio.h"
#include"conio.h"
#define N 3

int main(void)
{
int i,j;
i=1;
while(i<=N)
{
j=1;
while(j<=2*i-1)
{
printf("*");
j++;
}
printf("\n");
i++;
}


while(i>=1)
{
j=2*i-1;
while(j>=1)
{
printf("*");
j--;
}
printf("\n");
i--;
}

getch();
return(0);
}


----------------解决方案--------------------------------------------------------

再送给一个高级一点的显示*组成的菱形,win-tc测试通过哦

/*自己添加说明
题目:打印出如下图案(菱形)
*
***
*****
*******
*****
***
*
*/

#include"stdio.h"
#include"conio.h"
#define N 4

int main(void)
{
int i,j;
for(i=0;i<N;i++)
{
for(j=1;j<=N-i;j++)printf(" ");
for(j=1;j<=2*i+1;j++)printf("*");
printf("\n");
}

for(i;i>=0;i--)
{
for(j=1;j<=N-i;j++)printf(" ");
for(j=1;j<=2*i+1;j++)printf("*");
printf("\n");
}

getch();
return(0);
}

/*程序总结
定义了N为最长行的行数,可以显示任意行数的菱形
*/

[此贴子已经被作者于2007-8-11 21:49:10编辑过]


----------------解决方案--------------------------------------------------------

#include <stdio.h>

void main(){

int x=0;
while(x<=5){
int y=0;
while(y<=x){
printf("*");
y++;
}
x+=2;
printf("\n");
}
}



__________________________________________________________________
这样行不?


----------------解决方案--------------------------------------------------------
#include <stdio.h>
#include <math.h>
int main(int _=2){
while(_>=-2)printf("%s\n","*****"+2*abs(_--));
}

----------------解决方案--------------------------------------------------------
以下是引用leeldy在2007-8-11 21:05:42的发言:

再送给一个高级一点的显示*组成的菱形,win-tc测试通过哦

/*自己添加说明
题目:打印出如下图案(菱形)
*
***
*****
*******
*****
***
*
*/

#include"stdio.h"
#include"conio.h"
#define N 4

int main(void)
{
int i,j;
for(i=0;i<N;i++)
{
for(j=1;j<=N-i;j++)printf(" ");
for(j=1;j<=2*i+1;j++)printf("*");
printf("\n");
}

for(i;i>=0;i--)
{
for(j=1;j<=N-i;j++)printf(" ");
for(j=1;j<=2*i+1;j++)printf("*");
printf("\n");
}

getch();
return(0);
}

/*程序总结
定义了N为最长行的行数,可以显示任意行数的菱形
*/



你的这个for语句太多
应该只用三个for
第一个控制行数,第二个控制打的空格数,第三个控制打*


----------------解决方案--------------------------------------------------------
以下是引用寂寞在唱歌在2007-8-11 21:16:26的发言:

#include <stdio.h>

void main(){

int x=0;
while(x<=5){
int y=0;
while(y<=x){
printf("*");
y++;
}
x+=2;
printf("\n");
}
}



__________________________________________________________________
这样行不?

你的这个自己运行了没?
偶个人意见,一看就不行哈

你打印的结果是

*
***
*****

没有下半部了


----------------解决方案--------------------------------------------------------
  相关解决方案