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

模拟下雨c语言

发布时间: 2023-01-02 01:39:33

① 如何实现c语言程序各颜色数字雨代码

#include<stdio.h>

#include<time.h>

#include<windows.h>

typedef struct

{

int x,y;

char ch;

}STU;

STU st[100];

//出现位置

void gotoxy(int x, int y)

{

HANDLE hout;

COORD pos;

pos.X = x;

pos.Y = y;

hout = GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleCursorPosition(hout, pos);

}

/*隐藏光标*/

void show_cursor(int hide)

{

CONSOLE_CURSOR_INFO cciCursor;

HANDLE hout;

hout = GetStdHandle(STD_OUTPUT_HANDLE);

if(GetConsoleCursorInfo(hout, &cciCursor))

{

cciCursor.bVisible = hide;

SetConsoleCursorInfo(hout, &cciCursor);

}

}

/*设置颜色*/

void set_color(int color)

{

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);

}

main()

{

int i,j;

show_cursor(0);

srand(time(NULL));

//初始化结构体

for (i=0;i<100;i++)

{

st[i].x = rand()%80;

st[i].y = rand()%20;

st[i].ch = rand()%(49-47)+48;

}

while (1)

{

for (i=0;i<100;i++)

{

gotoxy(st[i].x,st[i].y);

set_color(0x2);//最先出现的颜色;

putchar(st[i].ch);

gotoxy(st[i].x,st[i].y-5);

putchar(' ');

st[i].y++;

st[i].ch = rand()%(49-47)+48;

if (st[i].y-5>=18)

{

gotoxy(st[i].x,st[i].y-1);

putchar(' ');

gotoxy(st[i].x,st[i].y-2);

putchar(' ');

gotoxy(st[i].x,st[i].y-3);

putchar(' ');

gotoxy(st[i].x,st[i].y-4);

putchar(' ');

gotoxy(st[i].x,st[i].y-4);

putchar(' ');

}

if (st[i].y > 23)

{

st[i].x = rand()%80;

st[i].y = rand()%20;

}

gotoxy(st[i].x,st[i].y);

set_color(0xA);//由前一个颜色渐变成的颜色

putchar(st[i].ch);

}

Sleep(120);

}

}

color(0);printf("黑色 ");color(1);printf("蓝色 ");color(2);printf("绿色 ");color(3);printf("湖蓝色 ");color(4);printf("红色 ");color(5);printf("紫色 ");color(6);printf("黄色 ");color(7);printf("白色 ");color(8);printf("灰色 ");color(9);printf("淡蓝色 ");color(10);printf("淡绿色 ");color(11);printf("淡浅绿色 ");color(12);printf("淡红色 ");color(13);printf("淡紫色 ");color(14);printf("淡黄色 ");color(15);printf("亮白色 ")

几个基本的颜色;

② 求:用单片机C语言做题目

时钟
#include<reg52.h>
char code ma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //0-9数码管,共阴
char code wema[]={0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7}; //片选,1-8个数码管
char j;
char h_num,m_num,s_num; //分别定义小时、分钟、秒
char h_shi,h_ge,m_shi,m_ge,s_shi,s_ge;
sbit fm=P3^4;

void delay(char x)
{
char a,b;
for(a=x;a>0;a--)
for(b=100;b>0;b--);
}

void inter_init()
{
EA=1; //开总中断
ET0=1; //本例中使用的是定时器T0,如果用T1。则为ET1=0,TMOD=0x10。
TMOD=0x01; //定时器工作方式1
TH0=(65535-50000)/256; //因为晶振用的是11.0592MHZ。在取初值时,大概定义为一个中断为50MS
TL0=(65535-50000)%256;
TR0=1;
}

void display(char h_shi,h_ge,m_shi,m_ge,s_shi,s_ge)
{
P2=ma[h_shi];
P1=wema[0];
delay(8);
P2=ma[h_ge];
P1=wema[1];
delay(8);
P2=ma[10];
P1=wema[2];
delay(8);

P2=ma[m_shi];
P1=wema[3];
delay(8);
P2=ma[m_ge];
P1=wema[4];
delay(8);
P2=ma[10];
P1=wema[5];
delay(8);

P2=ma[s_shi];
P1=wema[6];
delay(8);
P2=ma[s_ge];
P1=wema[7];
delay(8);
}

void main()
{
inter_init();
s_num=55; //初始时间设置。分别是秒,分,小时
m_num=59;
h_num=10;
while(1)
{
if(j==20)
{
j=0;
if(s_num==59)
{
s_num=-1;
if(m_num==59)
{
m_num=-1;
if(h_num==24)
h_num=-1;
h_num++;
fm=0; //到整点后蜂鸣器会响一下
delay(50);
fm=1;

}
m_num++;
}
s_num++;
}
h_shi=h_num/10;
h_ge =h_num%10;
m_shi=m_num/10;
m_ge =m_num%10;
s_shi=s_num/10;
s_ge =s_num%10;
display(h_shi,h_ge,m_shi,m_ge,s_shi,s_ge);
}
}

void time()interrupt 1 using 1 //如果用T1的话,应为interrupt 3
{
TH0=(65535-50000)/256; //因为晶振用的是11.0592MHZ。在取初值时,大概定义为一个中断为50MS
TL0=(65535-50000)%256;
j++;
}

③ c语言现在正在下雨吗死循环

你好,C语言中,强制终止死循环可以用CTRL+BREAK组合键或者CTRL+C组合键。
命令解释:
CTRL+BREAK 设置或清除 DOS 系统的扩展。CTRL+C 检测这个命令是为了与 DOS 系统的兼容而保留的,在 Windows里不起作用。如果命令扩展被启用,并且操作平台是Windows,BREAK 命令会在被调试程序调试时输入一个硬代码中断点。
通过CTRL+BREAK组合键或者CTRL+C组合键能够实现中断死循环。

④ 雨滴 传感器C语言程序

没给出整体原理图是没法写驱动代码的

⑤ 怎么用c写 下雨或下雪的 程序

初始化
void Init_Data()
{
int i;
for( i=0; i< POINT; i++)
{
Snow[i].x=0;
Snow[i].y=0;
Snow[i].size=0;
}
for( i=0; i<MaxX; i++)
Map[i]=MaxY;
}
显示:
void MakeSnow()
{
int i;
if( CurSnow>=POINT ) return;
for( i=0; Snow[i].size; i++ )
;
CurSnow++;
Snow[i].x=random(MaxX);
Snow[i].y=random(DOWNSPEED);
Snow[i].size=random(MaxSize)+1;

}
设定显示坐标
void ShowSnow( int x, int y, int size, int flag )
{
int color=0;

if ( flag ) color=15;
switch( size )
{
case 1:
putpixel( x, y, color );
break;
case 2:
setcolor( color );
line( x-1, y-1, x+1, y+1 );
line( x-1, y+1, x+1, y-1 );
break;
case 3:
setcolor( color );
line( x-1, y-1, x+1, y+1 );
line( x-1, y+1, x+1, y-1 );
/*
line( x-2, y-2, x+2, y+2 );
line( x-2, y+2, x+2, y-2 );*/

line( x-2, y, x+2, y );
line( x, y-2, x, y+2 );
break;
}

}
雪花移动效果:
void Move( int n, int tox, int toy )
{
int x, y, size, i, j;
float person;

x=Snow[n].x;
y=Snow[n].y;
size=Snow[n].size;
/* check end */
j=y;
if( x<tox )
{
person=(DOWNSPEED *1.0) / ( tox-x )*1.0;
for( i=x; i<=tox; i++ )
{
if( j>=Map[i] )
{
tox=i-size;
break;
}
j+=(int)( (i-x+1)*person );
}
}
else if( x>tox )
{
person=(DOWNSPEED *1.0) / ( x-tox )*1.0;
for( i=x; i>=tox; i-- )
{
if( j>=Map[i] )
{
tox=i+size;
break;
}
j+=(int)( (x-i+1)*person );
}
}

if( y+DOWNSPEED>=Map[tox] )
{
switch( size )
{
case 1:
Map[x]--;
break;
case 2:
Map[x]-=2;
if( x>0 && Map[x-1]>Map[x] ) Map[x-1]=Map[x];
if( x<MaxX-1 && Map[x+1]>Map[x] ) Map[x+1]=Map[x];
break;
case 3:
Map[x]-=3;
if( x>1 && Map[x-2]>Map[x] ) Map[x-1]=Map[x];
if( x>0 && Map[x-1]>Map[x] ) Map[x-1]=Map[x];

if( x<MaxX-2 && Map[x+2]>Map[x] ) Map[x+1]=Map[x];
if( x<MaxX-1 && Map[x+1]>Map[x] ) Map[x+1]=Map[x];
break;
}
CurSnow--;
y=Map[x]+size;
Snow[n].x=x;
Snow[n].y=y;
Snow[n].size=0;
}
else /* not end */
{
Snow[n].x=tox;
Snow[n].y=toy;
}
}

⑥ 用C语言编写一个程序判断下雨天是否要军训

正好手头有代码。。。 #include #include typedef struct _node { int data; struct _node *next;} Node;int main() { int n, i, maxNum = 2, num = 1; scanf("%d", &n); Node *head = (Node*)malloc(sizeof(Node)); head->next = NULL; for(i = n; i > 0; i--) { Node *p = (Node*)malloc(sizeof(Node)); p->data = i; p->next = head->next; head->next = p; } Node *cur = head; while(head->next->next->next->next) { if(cur->next) { if(num == maxNum) { cur->next = cur->next->next; } else { cur = cur->next; } num = num % maxNum + 1; } else { num = 1; maxNum = 5 - maxNum; cur = head; } } for(cur = head->next; cur; cur = cur->next) { printf("%d\n", cur->data); } return 0;}

⑦ c语言问题

你好像没有弄懂变量与值之间的关系,也没有弄懂if语句的用法
先说说if的用法:if语句后面的括号里面应该是一个数,或者是一个能算出具体数的表达式。举一个最简单的例子if(1)printf("我是天才");if语句中括号里的数如果是0则不执行后边的分支语句,或执行else(看是否有else),如果是1就执行后边的分支语句,并且不执行else,如果不是1也不是0那么而是别的具体的数,就当作1处理。所以刚才我写的这句话就肯定会执行(也就是说我绝对是天才:))。再比如if(a>b)a=b;这回括号里面的是一个表达式(或者说是一个运算),如果a真的大于b那么运算结果为1,即a>b=1;否则a>b=0,所以看a和b的关系来决定是否执行后边的赋值语句。
另外,说说变量。
变量一般用字母和数字来表示(应该还包括"_")所以,变量“朝霞”“晚霞”
是非法的。
另外,如果你要输入的是连个汉字的话,用一个变量就可以了。还有如果输入的是汉字的话就应该用“%s”。
下面是我写的程序,/*和*/之间的是注解,作为一名程序员或软件工程师,这时一个良好的习惯。//后面的也是注解,是根据你的程序写得,可替换前边的一句,但是对于基础还没有学好的你来说复杂(其实我也懒得用你那种方法,很少有人用输入汉字这种方法的),不太适合你用,最好不要替换前边的一句。
/*程序目的:输入朝霞或晚霞,然后显示第二天是晴天还是雨天*/
#include<stdio.h>
void main()
{
int a,flag=0;
//char a[4];
printf("生活就像疯子一样\n总是有事没事的给自己找一些麻烦\n\n\n\n请输入今天是朝霞还是晚霞?\n请输入序号:\n1.朝霞\n2.晚霞\n");
//printf("生活就像疯子一样\n总是有事没事的给自己找一些麻烦\n请输入今天是朝霞还是晚霞?输入汉字“朝霞”或“晚霞”");
do
{
scanf("%d",&a);
//scanf("%s",a);
if(a==1)
//if(a=="朝霞")
{
printf("明天会下雨\n");
flag=0;
}
else if(a==2)
//else if(a=="晚霞")
{
printf("明天不会下雨\n");
flag=0;
}
else
{
printf("本程序禁止开玩笑,做人要厚道\n请你输入1或2,不许输入别的,请你再输入一遍!\n");
//printf("本程序禁止开玩笑,做人要厚道\n请你输入"朝霞"或"晚霞",不许输入别的,请你再输入一遍!\n");
flag=1;
}
}while(flag);
}

⑧ 这个C程序的目的很简单,计算每年的总降雨量,年平均降雨量,月平均降雨量,编译器没报错,

for(y=0;y<YRS;y++)
{
for(m=0;m<MONTHS;m++)
total+=ar[y][m];
printf("%d%10.1f\n",1990+y,total);
}
你要计算每年的total,但是这里的total是不断累加的,每次外循环时应该把total置为0;
下面那个函数也一样

⑨ C语言编写程序

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intmain()
{
inttemperature;//温度
intweather;//天气
charstr_weather[5];
intwind;//风
srand((unsigned)time(0));//初始化随机种子
temperature=rand()%63-20;//获取-20到42的随机数
while(1)
{
weather=rand()%3;//获取天气情况:0为雨,1为雪,2为晴
if(temperature<0&&weather==0)//如果温度小于0度并且天气为雨,则重新获取
{
continue;
}
switch(weather)
{
case0:
strcpy(str_weather,"雨");
break;
case1:
strcpy(str_weather,"雪");
break;
case2:
strcpy(str_weather,"晴");
break;
}
break;//如果符合规则,则退出循环
}
wind=rand()%13;//获取风级:0-12
printf("今天温度:%d天气:%s风级:%d级 ",temperature,str_weather,wind);
return0;
}

⑩ 如何用C语言写出模拟打雷下雨的场景的函数

用C是没法写的,flash有自己的编程语言,Action Script 。