当前位置:首页 » 编程语言 » c语言简单雪花代码
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言简单雪花代码

发布时间: 2022-10-24 11:11:10

⑴ 用c语言编写一个程序,输出下列雪花图案!

#include"stdio.h"
#defineROW14
#defineCOL12
intmain()
{
charch[ROW][COL]; //多定义一行一列,0行和0列不用
inti,j;
for(i=0;i<ROW;i++)
for(j=0;j<COL;j++)
ch[i][j]=''; //初始化为空格

ch[1][4]=ch[13][4]='*';

for(i=2;i<=8;i+=2)
{
ch[3][i]='*';
ch[11][i]='*';
}
for(i=3;i<=7;i+=2)
{
ch[5][i]='*';
ch[9][i]='*';
}
for(i=1;i<=11;i+=2)
{
ch[7][i]='*';
}

printf("");
for(i=1;i<COL;i++)
printf("%d",i);
printf(" ");
for(i=1;i<ROW;i++)
{
printf("%-2d",i);
for(j=1;j<COL;j++)
{
printf("%c",ch[i][j]);
}
printf(" ");
}
return0;
}

⑵ c语言基础代码,越详细,解释越简单,越好

你并没有把详细的 C 语言基础代码写出来,别人怎么帮助你添加注释语句啊?因为所说的 C 语言基础代码实际上并没有一定之规。怎么样才算是基础代码、有几行代码就可以、足够了?这些都是灵活的、并不是一成不变的。例如,最、最简单的 C 语言基础代码就是:很多 C 语言教材上的第一个程序,输出:"Hello, World !"。该详细的 C 语言代码如下:
#include <stdio.h> /* 基本输入输出头文件,包括:printf、scanf等的库函数原型说明 */
void main( ) /* 任何一个 C 语言源代码都必须包含主函数 main( ),void 表示该函数不返回任何值 */
{ /* 在 C 语言代码中,任何一个函数都是以 { 开始,并且以 } 结束 */
printf( "Hello, World !\n" ) ; /* 在电脑屏幕上输出字符串:Hello, World */

}

⑶ 怎样用C语言设计一个屏幕飘雪加上新年祝福的程序

你就字符“*”代表雪花,雪花要从屏幕上方不停的向下移动,但是雪花的起始位置的横坐标最好随机, 再在屏幕上不同时间显示不同的中文祝福语如“新年快乐”还可以给字体弄上不同颜色。

⑷ 最简单的C语言代码

最简单的C语言代就是输出“helloWord”,通常是作为初学编程语言时的第一个程序代码。具体代码如下:

#include <stdio.h>

int main(){

printf("Hello, World! ");

return 0;

}

(4)c语言简单雪花代码扩展阅读:

1、程序的第一行#include <stdio.h>是预处理器指令,告诉 C 编译器在实际编译之前要包含 stdio.h 文件。

2、下一行intmain()是主函数,程序从这里开始执行。

3、下一行printf(...)是C中另一个可用的函数,会在屏幕上显示消息"Hello,World!"。

4、下一行return0;终止main()函数,并返回值0。

⑸ 怎么用C语言写下雪的动画效果

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>

/*
*清除屏幕的shell命令/控制台命令,还有一些依赖平台的实现
*如果定义了__GNUC__就假定是使用gcc编译器,为Linux平台
*否则认为是Window平台
*/
#ifdefined(__GNUC__)
//下面是依赖Linux实现
#include<unistd.h>
#definesleep_ms(m)
usleep(m*1000)

//向上移动光标函数Linux
staticvoid__curup(intheight)
{
inti=-1;
while(++i<height)
printf("33[1A");//先回到上一行
}
#else

//创建等待函数1s60帧相当于16.7ms=>1帧,我们取16ms
//咱么的这屏幕推荐1s25帧吧40ms
//这里创建等待函数以毫秒为单位,需要依赖操作系统实现
#include<Windows.h>
#definesleep_ms(m)
Sleep(m)

//向上移动光标
staticvoid__curup(intheight)
{
COORDcr={0,0};
//GetStdHandle(STD_OUTPUT_HANDLE)获取屏幕对象,设置光标
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),cr);
}
#endif/*__GNUC__跨平台的代码都很丑陋*/

//定义初始屏幕的宽高像素宏
#define_INT_WIDTH(100)
#define_INT_HEIGHT(50)
//屏幕刷新帧的速率
#define_INT_FRATE(40)
//雪花飘落的速率,相对于屏幕刷新帧的倍数
#define_INT_VSNOW(10)

/*
*错误处理宏,msg必须是""括起来的字符串常量
*__FILE__:文件全路径
*__func__:函数名
*__LINE__:行数行
*__VA_ARGS__:可变参数宏,
*##表示直接连接,例如a##b<=>ab
*/
#definecerr(msg,...)
fprintf(stderr,"[%s:%s:%d]"msg" ",__FILE__,__func__,__LINE__,##__VA_ARGS__);

/*
*屏幕结构体,具有宽高
*frate:绘制一帧的周期,单位是毫秒
*width:屏幕的宽,基于窗口的左上角(0,0)
*height:屏幕的高
*pix:用一维模拟二维主要结构如下
*0001001010
*0101010120
*...
*=>0表示没像素,1表示1个像素,2表示2个像素....
*/
structscreen{
intfrate;//也可以用unsigned结构
intwidth;
intheight;
char*pix;
};

/*
*创建一个屏幕结构指针返回
*
*intfrate:绘制一帧的周期
*intwidth:屏幕宽度
*intheight:屏幕高度
*return:指向屏幕结构的指针
**/
structscreen*screen_create(intfrate,intwidth,intheight);

/*
*销毁一个屏幕结构指针,并为其置空
*structscreen**:指向屏幕结构指针的指针,二级销毁一级的
**/
voidscreen_destory(structscreen**pscr);

/**
*屏幕绘制函数,主要生成一个雪花效果
*
*structscreen*:屏幕数据
*return:0表示可以绘制了,1表示图案不变
*/
intscreen_draw_snow(structscreen*scr);

/**
*屏幕绘制动画效果,绘制雪花动画
*
*structscreen*:屏幕结构指针
*/
voidscreen_flash_snow(structscreen*scr);

//主函数,主业务在此运行
intmain(intargc,char*argv[])
{
structscreen*scr=NULL;

//创建一个屏幕对象
scr=screen_create(_INT_FRATE,_INT_WIDTH,_INT_HEIGHT);
if(NULL==scr)
exit(EXIT_FAILURE);

//绘制雪花动画
screen_flash_snow(scr);

//销毁这个屏幕对象
screen_destory(&scr);

return0;
}

/*
*创建一个屏幕结构指针返回
*
*intfrate:绘制一帧的周期
*intwidth:屏幕宽度
*intheight:屏幕高度
*return:指向屏幕结构的指针
**/
structscreen*
screen_create(intfrate,intwidth,intheight)
{
structscreen*scr=NULL;

if(frate<0||width<=0||height<=0){
cerr("[WARNING]checkisfrate<0||width<=0||height<=0err!");
returnNULL;
}

//后面是为scr->pix分配的内存width*height
scr=malloc(sizeof(structscreen)+sizeof(char)*width*height);
if(NULL==scr){
cerr("[FATALG]Outofmemory!");
returnNULL;
}
scr->frate=frate;
scr->width=width;
scr->height=height;
//减少malloc次数,malloc消耗很大,内存泄露呀,内存碎片呀
scr->pix=((char*)scr)+sizeof(structscreen);

returnscr;
}

/*
*销毁一个屏幕结构指针,并为其置空
*structscreen**:指向屏幕结构指针的指针,二级销毁一级的
**/
void
screen_destory(structscreen**pscr)
{
if(NULL==pscr||NULL==*pscr)
return;
free(*pscr);
//避免野指针
*pscr=NULL;
}

//构建开头的雪花,下面宏表示每_INT_SHEAD个步长,一个雪花,需要是2的幂
//static可以理解为private,宏,位操作代码多了确实难读
#define_INT_SHEAD(1<<2)
staticvoid__snow_head(char*snow,intlen)
{
intr=0;

//数据需要清空
memset(snow,0,len);
for(;;){
//取余一个技巧2^3-1=7=>111,并就是取余数
intt=rand()&(_INT_SHEAD-1);
if(r+t>=len)
break;
snow[r+t]=1;
r+=_INT_SHEAD;
}
}
#undef_INT_SHEAD

//通过上一个scr->pix[scr->width*(idx-1)]=>scr->pix[scr->width*idx]
//下面的宏规定雪花左右摇摆0向左一个像素,1表示不变,2表示向右一个像素
#define_INT_SWING(3)
staticvoid__snow_next(structscreen*scr,intidx)
{
intwidth=scr->width;
char*psnow=scr->pix+width*(idx-1);
char*snow=psnow+width;
inti,j,t;//i索引,j保存下一个瞬间雪花的位置,t临时补得,解决雪花重叠问题


//为当前行重置
memset(snow,0,width);
//通过上一次雪花位置计算下一次雪花位置
for(i=0;i<width;++i){
for(t=psnow[i];t>0;--t){//雪花可以重叠
//rand()%_INT_SWING-1表示雪花横轴的偏移量,相对上一次位置
j=i+rand()%_INT_SWING-1;
j=j<0?width-1:j>=width?0:j;//j如果越界了,左边越界让它到右边,右边越界到左边
++snow[j];
}
}
}

/**
*屏幕绘制函数,主要生成一个雪花效果
*
*structscreen*:屏幕数据
*return:0表示可以绘制了,1表示图案不变
*/
int
screen_draw_snow(structscreen*scr)
{
//静态变量,默认初始化为0,每次都共用
staticint__speed=0;
intidx;

if(++__speed!=_INT_VSNOW)
return1;

//下面就是到了雪花飘落的时刻了既__speed==_INT_VSNOW
__speed=0;

//这里重新构建雪花界面,先构建头部,再从尾部开始构建
for(idx=scr->height-1;idx>0;--idx)
__snow_next(scr,idx);

//构建头部
__snow_head(scr->pix,scr->width);

return0;
}

//buf保存scr中pix数据,构建后为(width+1)*height,后面宏是雪花图案
#define_CHAR_SNOW‘*‘
staticvoid__flash_snow_buffer(structscreen*scr,char*buf)
{
inti,j,rt;
intheight=scr->height,width=scr->width;
intfrate=scr->frate;//刷新的帧频率

//每次都等一下
for(;;sleep_ms(frate)){
//开始绘制屏幕
rt=screen_draw_snow(scr);
if(rt)
continue;

for(i=0;i<height;++i){
char*snow=scr->pix+i*width;
for(j=0;j<width;++j)
buf[rt++]=snow[j]?_CHAR_SNOW:‘‘;
buf[rt++]=‘ ‘;
}
buf[rt-1]=‘‘;

//正式绘制到屏幕上
puts(buf);

//清空老屏幕,屏幕光标回到最上面
__curup(height);
}
}
#undef_CHAR_SNOW

/**
*屏幕绘制动画效果,绘制雪花动画
*
*structscreen*:屏幕结构指针
*/
void
screen_flash_snow(structscreen*scr)
{
char*buf=NULL;
//初始化随机数种子,改变雪花轨迹
srand((unsigned)time(NULL));

buf=malloc(sizeof(char)*(scr->width+1)*scr->height);
if(NULL==buf){
cerr("[FATAL]Outofmemory!");
exit(EXIT_FAILURE);
}

__flash_snow_buffer(scr,buf);

//1.这里理论上不会执行到这,没加控制器.2.对于buf=NULL,这种代码可以省掉,看编程习惯
free(buf);
buf=NULL;
}

⑹ 写一个简短的C语言代码

最简单的C语言代就是输出“helloWord”,通常是作为初学编程语言时的第一个程序代码。具体代码如下:

#include <stdio.h>

int main(){

printf("Hello, World! ");

return 0;

}

(6)c语言简单雪花代码扩展阅读:

1、程序的第一行#include <stdio.h>是预处理器指令,告诉 C 编译器在实际编译之前要包含 stdio.h 文件。

2、下一行intmain()是主函数,程序从这里开始执行。

3、下一行printf(...)是C中另一个可用的函数,会在屏幕上显示消息"Hello,World!"。

4、下一行return0;终止main()函数,并返回值0。

⑺ C语言基本代码,求详细解释,越详细越好。

解释如下:

#include"stdio.h"//头文件

#include"math.h"//数学库函数

double pcos(double a);//声明子函数

main()//主函数

{

double x,y;//定义x,y这两个双精度数据

printf("please input one number:");

//输出please input one number:

scanf("%lf",&x);//出入一个数据并赋值给x

y=pcos(x);//把x传入pcos函数,返回值赋值给y

printf("cos of %lf is %lf ",x,y);//输出cos of x is y

}

double pcos(double a)//定义子函数名,形式参数

{

double b;//定义双精度数据b

b=cos(a);//计算cos(a),并赋值给b

return b;//返回b的值

}

(7)c语言简单雪花代码扩展阅读:

注释就是对代码的解释和说明,其目的是让人们能够更加轻松地了解代码。注释是编写程序时,写程序的人给一个语句、程序段、函数等的解释或提示,能提高程序代码的可读性。

注释就是对代码的解释和说明。目的是为了让别人和自己很容易看懂。为了让别人一看就知道这段代码是做什么用的。

正确的程序注释一般包括序言性注释和功能性注释。序言性注释的主要内容包括模块的接口、数据的描述和模块的功能。模块的功能性注释的主要内容包括程序段的功能、语句的功能和数据的状态。

⑻ 求简单C语言程序代码!

输入2个正整数m和n,求其最大公约数和最小公倍数

#include

#include

int main()

int m,n,p,q,s,r;

printf("请输入两个正整数;m,n ");

scanf("%d,%d",&m,&n);

#include<stdio.h>

main()

int a,b,t=0;

scanf("%d %d",&a,&b);

if (a<b)

printf("%d %d %d %d %d",(a+b),(a-b),(a/b),(a*b),(a%b));

}

主要特点

C语言是一种结构化语言,它有着清晰的层次,可按照模块的方式对程序进行编写,十分有利于程序的调试,且c语言的处理和表现能力都非常的强大,依靠非常全面的运算符和多样的数据类型,可以轻易完成各种数据结构的构建,通过指针类型更可对内存直接寻址以及对硬件进行直接操作,因此既能够用于开发系统程序,也可用于开发应用软件。

以上内容参考:网络-c语言

⑼ 超简单的C语言代码帮忙看看错误

float 1 错误,float 是用来声明变量的,1是常量。
1-2*pi*r得出的值得赋给一个变量。
你是不是想这么写

float r;
float l;//这是L的小写,不是1
....
l=2*pi*r;
cout<<"这个圆的周长为"<<l<<endl;
....

可能是笔误吧,把l写成1了