當前位置:首頁 » 編程語言 » 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了