C语言循环输出图形
求代码,将这几个图形按顺序反复输出。
使用printf函数
几个图形是固定的,已经设计好。就是要【循环】输出,直到按任意键退出
weizcw2008 我不是这个意思
要的效果是运行后屏幕上先出现一个图形
然后清屏,接着出现下一个
以此类推
形成一个【动画】的效果
总共就4个图形
【那个图形是我指定的】
849797221 的代码直接在C环境下报错,c++才行的通
。。。。
VC 展开
说下什么编程环境?
TC 还是mc++6.
这可以做,简单 把你己有的*号图形写成独立的输出函数,
我想你也是用printf加空格试出来的吧,在主程序调用就行.
#include <stdio.h>
#include <windows.h>//TC不用这头文件
#include <conio.h>
void yourprintf1(void){
/*
这里加你自己的*号图形代码
*/
printf(" *\n");
printf(" ***\n");
printf(" *****\n");
}
void yourprintf2(void){
/*
这里加你自己的*号图形代码
*/
printf(" ******\n");
printf(" * *\n");
printf(" * *\n");
printf(" * *\n");
printf(" ******\n");
}
void yourprintf3(void){
/*
这里加你自己的*号图形代码
*/
}
void yourprintf4(void){
/*
这里加你自己的*号图形代码
*/
}
main(){
do{
system("cls");
yourprintf1();
Sleep(1000);//vc用这个
delay(1000);//tc用这个
getch();
system("cls");
yourprintf2();
Sleep(1000);//vc用这个
delay(1000);//tc用这个
system("cls");
yourprintf3();
Sleep(1000);//vc用这个
delay(1000);//tc用这个
system("cls");
yourprintf4();
Sleep(1000);//vc用这个
delay(1000);//tc用这个
}while(getch()!='q');//按q退出图形循环,不然一直循环显示.
}
我只简单画了三角形和方形,
只要你自己有空用printf试好另外再复杂的图形加入上面4个自定义的打印函数里就行.
看下效果:
楼主,我想你主要是卡在“想要它循环,直到任意键退出”这个点上了,判断键盘消息用到了kbhit()函数和system("pause")函数,只不过记得加头文件就行。
看我代码,图形有两个,常用到的,你自己跑一跑,看看效果:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void main()
{
int i,j,k;
while(!kbhit())/*判断键盘消息*/
{
printf("/************输出第一个图形**************/\n");
/*输出前4行*/
for(i=0;i<4;i++)
{
for(j=0;j<3-i;j++)
printf(" ");
for(k=0;k<2*i+1;k++)
printf("*");
printf("\n");
}
/*输出后3行*/
for(i=3;i>0;i--)
{
for(j=0;j<=3-i;j++)
printf(" ");
for(k=0;k<2*i-1;k++)
printf("*");
printf("\n");
}
printf("/************输出第二个图形**************/\n");
for(i=0;i<4;i++)
{
for(j=0;j<2*i+1;j++)
printf("*");
printf("\n");
}
for(i=2;i>=0;i--)
{
for(k=0;k<2*i+1;k++)
printf("*");
printf("\n");
}
}
system("pause");/*暂停*/
}
#include“stdio.h"
void main()
{
int i,j,k;
for(i=0;i<=3;i++) /*i从0开始到3结束,共循环4次,功能为打印菱形的上半部分*/
{
for(j=0;j<=2-i;j++) /*j从0开始循环,用来输出每行前面的空格*/
printf(" ");
for(k=0;k<=2*i;k++) /*k控制输出*的数量,2*i,上半部分没增加一行就多2颗*,所以2*i*/
printf("*");
printf("\n"); /*输完一行就换行*/
}
for(i=0;i<=2;i++) /*i从0开始到2结束,共循环3次,功能为打印菱形的下半部分*/
{
for(j=0;j<=i;j++) /*下半部分每一行的空格数量跟i的值相同*/
printf(" ");
for(k=0;k<=4-2*i;k++) /*4-2*i 为*数*/
printf("*");
printf("\n");
}
}
把void main改成int main
然后在main函数的最后加上return 0;
这样我猜在“C环境下”就不会报错了吧
#include<stdio.h>
#include<stdlib.h>
void main()
{
int i=0;
int n;
printf("请输入你要将图形输出几次:");
scanf("%d",&n);
for(i=0;i<n;i++){
for(int i=0;i<4;i++)
{
for(int j=0;j<3-i;j++)
printf(" ");
for(int k=0;k<2*i+1;k++)
printf("*");
printf("\n");
}
for( i=0;i<3;i++)
{
for(int j=0;j<i+1;j++)
printf(" ");
for(int k=0;k<5-2*i;k++)
printf("*");
printf("\n");
}
}
}