C语言雨水
#include<stdio.h>
voidmain(){
inta,b,c,s;
for(a=2;a<=9;a++)
for(b=1;b<=9;b++)
for(c=0;c<=9;c++)
{
s=a*(b*10+3+c)*a*(b*10+3+c);
if(s/1000==8&&s%10==9)
printf("%d%d%d ",a,b,c);
}
}
‘贰’ C语言问题求解,在线等,急!!!
思路:
1、根据题意每天从区间1~N中,依次深度-1,遇到某个深度0时停止作业,所修改的区间就是当日作业区间。
2、独立函数实现一天作业(workForDay)。参数flag为1显示作业过程,如不需要传0。
3、init函数为输入并返回动态数组。
#include <stdio.h>
#include <malloc.h>
int len=0;//路面长度
int *init();//根据输入初始化深度数组,成功返回地址,失败返回NULL
int workForDay(int *dps,int flag);//执行一天填充作业。成功作业返回1,无需作业返回0, 异常返回-1
//flag=1,打印输出作业过程。flag=0,不打印过程
int main()
{
int day=0,re,*dps=NULL;
dps=init();
if(!dps) return 1;
while((re=workForDay(dps,1))==1)
day++;
if(re==-1) return 1;
printf("共作业%d天 ",day);
free(dps);dps=NULL;//在本程序可不释放,但如果多次调用init函数,每次用完数组,需这样释放内存。
return 0;
}
int *init()
{
int i,*dps=NULL;//dps每单位长度对应深度
len=0;
while(len<=0) scanf("%d",&len);//长度必须大于0整数
dps=(int *)malloc(sizeof(int)*len);
if(!dps) return NULL;
for(i=0;(dps[i]=-1) && i<len;i++)
while(dps[i]<0) scanf("%d",&dps[i]);//每个深度必须大于等于0整数
return dps;
}
int workForDay(int *dps,int flag)
{
int i,bn=-1,an=-1;
if(!dps) return -1;
for(i=0;i<len;i++)
{
if(bn==-1 && dps[i]>0)
bn=i+1,an=bn,dps[i]--;
else if(bn!=-1 && dps[i]>0)
an=i+1,dps[i]--;
else if(bn!=-1 && dps[i]==0)
break;
}
if(bn==-1) return 0;
if(flag) printf("当日作业区间为[%d,%d] ",bn,an);
return 1;
}
‘叁’ 用C语言怎么编写万年历
C语言编写万年历的源代码如下:
#include <stdio.h>
int week(int y,int m,int d);
int main()
{
char wk[7][3] = {{"天"},{"一"},{"二"},{"三"},{"四"},{"五"},{"六"}};
int year, month, day, w;
scanf("%d %d %d", &year, &month, &day);
w = week(year, month, day);
printf("%d年%d月%d日 星期%s", year, month, day, wk[w]);
}
int week(int y,int m,int d)
{
static int r[13]={0,0,3,3,6,1,4,6,2,5,0,3,5};
int c,w;
y %= 400;
if ((y==0||y%4==0&&y%100!=0)&&m<3)
c = 5;
else
c = 6;
w = (y+y/4-y/100+r[m]+d+c)%7;
return w;
}
(3)C语言雨水扩展阅读
电子时钟C语言版的源代码如下:
#include<stdio.h>
#include<time.h>
#include<string.h>
int main()
{
char str[50];
time_t t;
struct tm *nt;
while(1)
{
system("cls");//清屏函数
t=time(NULL);
nt=localtime(&t);
strftime(str,50,"%Y-%m-%d %H:%M:%S “,nt);
printf("现在时刻:%s ",str);
}
getch();
return 0;
}
‘肆’ 怎么用C语言编写编写万年历
农历,大月30天,小月29天。
还有闰月。这个有点麻烦。我不知道农历的润月是怎么个润法。
农历
[解释]1.中国的一种历法,是阴阳历的一种,一般就叫阴历。平年十二个月,大月三十天,小月二十九天,全年354天或355天(一年中哪一月大,哪一月小,年年不同)。由于平均每年的天数比太阳年约差十一天,所以在十九年里设置七个闰月,有闰月的年份全年383天或384天。又根据太阳的位置,把一个太阳年分成二十四个节气,便于农事。纪年用天干地支搭配,六十年周而复始。这种历法相传创始于夏代,所以又称为夏历。也叫旧历。
2.农业上使用的历书。
即夏历。(“农历”一称流行的原因:由于文化大革命时期极左思潮泛滥,“横扫四旧”,认为“夏历”是夏王朝的印记,必须改名;因传统历法在农村使用较普遍,故通过报纸改名“农历”:1968年元旦,全国报纸报头一夜间将“夏历”名称改成了“农历”。
按:所谓“农历”,是指它有指导农业生产的意义,但事实上农历月日与季节变化相差明显,指导农时的效果并不好,我国古代真正指导农时的是“二十四气”,它实际是一种特殊的“阳历” )
农历的历月长度是以朔望月为准的,大月30天,小月29天,大月和小月相互弥补,使历月的平均长度接近朔望月。
农历固定地把朔的时刻所在日子作为月的第一天——初一日。所谓“朔”,从天文学上讲,它有一个确定的时刻,也就是月亮黄经和太阳黄经相同的那一瞬间。(太阳和月亮黄经的计算十分繁琐和复杂,这里就不予介绍了)
至于定农历日历中月份名称的根据,则是由“中气”来决定的。即以含“雨水”的月份为一月;以含“春分”的月份为二月;以含“谷雨”的月份为三月;以含“小满”的月份为四月;以含“夏至”的月份为五月;以含“大暑”的月份为六月;以含“处暑”的月份为七月;以含“秋分”的月份为八月;以含“霜降”的月份为九月;以含“小雪”的月份为十月;以含“冬至”的月份为十一月;以含“大雪”的月份为十二月。(没有包含中气的月份作为上月的闰月)
农历的历年长度是以回归年为准的,但一个回归年比12个朔望月的日数多,而比13个朔望月短,古代天文学家在编制农历时,为使一个月中任何一天都含有月相的意义,即初一是无月的夜晚,十五左右都是圆月,就以朔望月为主,同时兼顾季节时令,采用十九年七闰的方法:在农历十九年中,有十二个平年,为一平年十二个月;有七个闰年,每一闰年十三个月。
为什么采取“十九年七闰”的方法呢? 一个朔望月平均是29.5306日,一个回归年有12.368个朔望月,0.368小数部分的渐进分数是1/2 、1/3 、3/8 、4/11 、7/19 、46/125, 即每二年加一个闰月,或每三年加一个闰月,或每八年加三个闰月……经过推算,十九年加七个闰月比较合适。因为十九个回归年=6939.6018日,而十九个农历年(加七个闰月后)共有235个朔望月,等于6939.6910日,这样二者就差不多了。
七个闰月安插到十九年当中,其安插方法可是有讲究的。农历闰月的安插,自古以来完全是人为的规定,历代对闰月的安插也不尽相同。秦代以前,曾把闰月放在一年的末尾,叫做“十三月”。汉初把闰月放在九月之后,叫做“后九月”。到了汉武帝太初元年,又把闰月分插在一年中的各月。以后又规定“不包含中气的月份作为前一个月的闰月”,直到现在仍沿用这个规定。
为什么有的月份会没有中气呢? 节气与节气或中气与中气相隔时间平均是30.4368日(即一回归年排65.2422日平分12等分),而一个朔望月平均是29.5306日,所以节气或中气在农历的月份中的日期逐月推移迟,到一定时候,中气不在月中,而移到月末,下一个中气移到另一个月的月初,这样中间这个月就没有中气,而只剩一个节气了。
上面讲过,古人在编制农历时,以十二个中气作为十二个月的标志,即雨水是正月的标志,春分是二月的标志,谷雨是三月的标志……把没有中气的月份作为闰月就使得历月名称与中气一一对应起来,从而保持了原有中气的标志。
从十九年七闰来说,在十九个回归年中有228个节气和228个中气, 而农历十九年有235个朔望月,显然有七个月没有节气和七个月没有中气,这样把没有中气的月份定为闰月,也就很自然了。
农历月的大小很不规则,有时连续两个、三个、四个大月或连续两个三个小月,历年的长短也不一样,而且差距很大。节气和中气,在农历里的分布日期很不稳定,而且日期变动的范围很大。这样看来,农历似乎显得十分复杂。其实。农历还是有一定循环规律的:由于十九个回归年的日数与十九个农历年的日数差不多相等,就使农历每隔十九年差不多是相同的。每隔十九年,农历相同月份的每月初一日的阳历日一般相同或者相差一、二天。每隔十九年,节气和中气日期大体上是重复的,个别的相差一、两天。相隔十九年闰月的月份重复或者相差一个月。
干支纪法
干支就字面意义来说,就相当于树干和枝叶。我国古代以天为主,以地为从,天和干相连叫天干,地和支相连叫地支,合起来叫天干地支,简称干支。
天干有十个,就是甲、乙、丙、丁、戊、己、庚、辛、壬、癸,地支有十二个,依次是子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥。古人把它们按照一定的顺序而不重复地搭配起来,从甲子到癸亥共六十对,叫做六十甲子。
我国古人用这六十对干支来表示年、月、日、时的序号,周而复始,不断循环,这就是干支纪法。
传说黄帝时代的大臣大挠“深五行之情,占年纲所建,于是作甲乙以名日,谓之干;作子丑以名日,谓之枝,干支相配以成六旬。”这只是一个传说,干支到底是谁最先创立的,现在还没有证实,不过在殷墟出土的甲骨文中,已有表示干支的象形文字,说明早在殷代已经使用干支纪法了。
‘伍’ ACM的一道有关避雨的c语言题目
#include<iostream>
#include<string.h>
#include<stdio.h>
usingnamespacestd;
charstr[15][15];
intmain()
{
intt,n,m,i,j,sX,sY;
intmindist,ansX,ansY;
scanf("%d",&t);
while(t--){
scanf("%d%d",&m,&n);
for(i=0;i<m;i++){
scanf("%s",str[i]);
for(j=0;j<n;j++)
if(str[i][j]=='s'){//记录s的位置
sX=i;
sY=j;
}
}
mindist=10000;
for(i=0;i<m;i++)
for(j=0;j<n;j++){
if(str[i][j]=='d'){//每个d到s的距离都和最小距离mindist做比较
inttmp=abs(i-sX)+abs(j-sY);
if(mindist>tmp){//记录最短位置的下标
mindist=tmp;
ansX=i;
ansY=j;
}
}
}
printf("(%d,%d) ",ansX,ansY);
}
return0;
}
请参考这段代码哈,欢迎交流。
‘陆’ 这个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<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语言来进行。
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。
‘玖’ c语言输入年月日输出当日所属节气
printf("%d年%d月%d日是xxxx",z,x/100,x%100);
‘拾’ 怎么用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;
}
}