例如:输入某年某月某日,判断这一天是这一年的第几天。
1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊
情况,闰年且输入月份大于3时需考虑多加一天。
2.程序源代码:
复制代码 代码如下:
main()
{
int day,month,year,sum,leap;
printf("\nplease input year,month,day\n");
scanf("%d,%d,%d",year,month,day);
switch(month)/*先计算某月以前月份的总天数*/
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
defaultrintf("data error");break;
}
sum=sum+day; /*再加上某天的天数*/
if(year%400==0||(year%4==0year%100!=0))/*判断是不是闰年*/
leap=1;
else
leap=0;
if(leap==1month2)/*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf("It is the %dth day.",sum); }
http://bbs.bccn.net/thread-305217-1-1.html
这里可以帮助你
这里我试了一下,代码如下:
#includestdio.h
#includestring.h
int main()
{
char digit[][3]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
int length = 0;/*输入的小写金额的长度*/
char money[20] = {'0'};/*保存输入的小写金额,支持到千亿*/
int i = 0;
gets(money);/*输入小写金额*/
length = strlen(money);
//printf("%d",length);
if(length == 1 money[0] == '0')
{
printf("零元\n");
}
else
{
for(i = 0; i length; i++)
{
printf("%s",digit[money[i] - '0']);
switch(length - i)
{
case 16:
case 12:
case 8:
case 4:
printf("千");
break;
case 15:
case 11:
case 7:
case 3:
printf("佰");
break;
case 14:
case 10:
case 6:
case 2:
printf("拾");
break;
case 13:
case 5:
printf("万");
break;
case 9:
printf("亿");
break;
case 1:
printf("元整\n");
break;
}
}
}
return 0;
}
我是基于一楼的upccash的想法,它很巧妙,不过他把字符串颠倒一下,好像是要好处理一些。
还有就是输出太死板,虽然完全满足你的需求。不过1002,我们平时会说是一千零二元整,而不会说一千零白零十二元整。有待改进。
改进方法看能不能设置一个标记为,有0的话就省略后面的单位
怎么修改一下答案,就跑到最后来了。。。。
小游戏2048源码:
#includestdio.h
#includestdlib.h
#includeconio.h
#includetime.h
#includewindows.h
int jsk( ); //计算空格数
void rsgm( ); //重置游戏
void inkey( ); //按键输入
void left( ); //向左移动
void right( ); //向右移动
void up( ); //向上移动
void down( ); //向下移动
void show( ); //输出界面
void adnum( ); //添加随机数
void yes( ); //游戏是否结束(1是0否)
void gtxy(int x, int y); //控制光标位置的函数
int a[4][4]; //存储16个格子中的数字
int score = 0; //每局得分
int best = 0; //最高得分
int ifnum; //是否需要添加数字(1是0否)
int over; //游戏结束标志(1是0否)
int i,j,k;
int main( )
{ rsgm( ); //重置游戏
inkey( ); //按键输入
return 0;
}
void setColor(unsigned short ForeColor = 7, unsigned short BackGroundColor = 0)
{ HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(handle, ForeColor + BackGroundColor * 0x10);
} //用于控制字符颜色的函数
void rsgm( ) //重置游戏
{ score = 0; ifnum = 1; over = 0; srand((unsigned)time(0)); //启动随机数发生器
int n = rand( ) % 16; //随机函数产生0-15的数字
for (i = 0; i 4; i++)
{for (j = 0; j 4; j++)
{ if (n == 0) { int k = rand( ) % 3; if (k == 0 || k == 1) { a[i][j] = 2; }
else { a[i][j] = 4; } n--; }
else { a[i][j] = 0; n--; }
}
}
adnum( );
system("cls");
CONSOLE_CURSOR_INFO cursor_info={1,0}; //以下两行是隐藏光标的设置
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),cursor_info);
setColor(14, 0); //设置字体淡红色,背景为黑色
printf("\n\n\t\t 2048小游戏"); setColor(7, 0); //恢复白字黑底
printf("\n\t┌──────┬──────┬──────┬──────┐");
printf("\n\t│ │ │ │ │");
printf("\n\t├──────┼──────┼──────┼──────┤");
printf("\n\t│ │ │ │ │");
printf("\n\t├──────┼──────┼──────┼──────┤");
printf("\n\t│ │ │ │ │");
printf("\n\t├──────┼──────┼──────┼──────┤");
printf("\n\t│ │ │ │ │");
printf("\n\t└──────┴──────┴──────┴──────┘");
show( );
}
void show( ) //输出界面
{ for(i=0;i4;i++)
for(j=0;j4;j++)
{ gtxy(7*j+9,2*i+4); //gtxy(7*j+9, 2*i+4)是光标到指定位置输出数字
if(a[i][j]==0){printf(" "); setColor(7, 0); printf("│");}
else if(a[i][j]10){ if (a[i][j] == 2) {setColor(14, 0); }
else if (a[i][j] == 4) {setColor(13, 0); }
else if (a[i][j] == 8) {setColor(12, 0); }
printf(" %d ", a[i][j]); setColor(7, 0); printf("│");
}
else if (a[i][j] 100){if (a[i][j] == 16) {setColor(12, 0); }
else if (a[i][j] == 32) {setColor(10, 0); }
else if (a[i][j] == 64) {setColor(2, 0); }
printf(" %d ", a[i][j]); setColor(7, 0); printf("│");
}
else if (a[i][j] 1000) {if (a[i][j] == 128) {setColor(9, 0); }
else if (a[i][j] == 256) {setColor(1, 0); }
else if (a[i][j] == 512) {setColor(13, 0); }
printf(" %d ", a[i][j]); setColor(7, 0); printf("│");
}
else if (a[i][j] 10000) {if (a[i][j] == 1024) {setColor(5, 0); }
else {setColor(15, 0); }
printf(" %d ", a[i][j]); setColor(7, 0); printf("│");
}
}
if (jsk( ) == 0)
{ yes( ); if (over) { gtxy(9,12); setColor(10, 0);
printf("\n\n 游戏结束!是否继续? [ Y/N ]:"); }
}
}
void inkey( ) //按键输入
{ int key;
while (1)
{ key = getch( );
if (over) { if (key == 89|| key == 121) {rsgm( ); continue; }
else if (key == 78|| key == 110) { return; }
else continue; }
ifnum = 0;
if(key==224)key=getch( );
switch (key)
{ case 75: left( ); break;
case 77: right( ); break;
case 72: up( ); break;
case 80: down( );break;
}
if (score best) { best = score; }
if (ifnum) { adnum( ); show( ); }
}
}
int jsk( ) //计算空格数
{ int n = 0;
for (i = 0; i 4; i++)
{ for (j = 0; j 4; j++) { if ( a[i][j] == 0) {n++;} } }
return n;
}
void left( ) //向左移动
{ for (i = 0; i 4; i++)
{for (j = 1, k = 0; j 4; j++)
{ if (a[i][j] 0)
{ if ( a[i][k] == a[i][j])
{ a[i][k] *= 2; k++;
score = score + 2 * a[i][j];
a[i][j] = 0; ifnum = 1; }
else if ( a[i][k] == 0) { a[i][k] = a[i][j]; a[i][j] = 0; ifnum = 1; }
else { a[i][k + 1] = a[i][j]; if ((k + 1) != j) { a[i][j] = 0; ifnum = 1; }
k++; }
}
}
}
}
void right( ) //向右移动
{for (i = 0; i 4; i++)
{for (j = 2, k = 3; j = 0; j--)
{if (a[i][j] 0)
{ if (a[i][k] == a[i][j])
{a[i][k] *= 2; k--; score = score + 2 * a[i][j]; a[i][j] = 0; ifnum = 1; }
else if ( a[i][k] == 0) {a[i][k] = a[i][j]; a[i][j] = 0; ifnum = 1; }
else { a[i][k - 1] = a[i][j]; if ((k - 1) != j) { a[i][j] = 0; ifnum = 1; } k--; }
}
}
}
}
void up( ) //向上移动
{for (i = 0; i 4; i++)
{for (j = 1, k = 0; j 4; j++)
{if (a[j][i] 0)
{if ( a[k][i] == a[j][i]) { a[k][i] *= 2; k++;score = score + 2 * a[j][i];
a[j][i] = 0; ifnum = 1; }
else if ( a[k][i] == 0) { a[k][i] = a[j][i]; a[j][i] = 0; ifnum = 1; }
else { a[k + 1][i] = a[j][i]; if ((k + 1) != j) { a[j][i] = 0; ifnum = 1; }
k++; }
}
}
}
}
void down( ) //向下移动
{ for (i = 0; i 4; i++)
{for (j = 2, k = 3; j = 0; j--)
{if (a[j][i] 0)
{if (a[k][i] == a[j][i])
{a[k][i] *= 2; k--;score = score + 2 * a[j][i]; a[j][i] = 0; ifnum = 1; }
else if (a[k][i] == 0) {a[k][i] = a[j][i]; a[j][i] = 0; ifnum = 1; }
else {a[k - 1][i] = a[j][i];
if ((k - 1) != j) {a[j][i] = 0; ifnum = 1; } k--; }
}
}
}
}
void adnum( ) //添加随机数
{ srand(time(0)); //启动随机数发生器
int n = rand( ) % jsk( );
for (int i = 0; i 4; i++)
{for (int j = 0; j 4; j++)
{ if (a[i][j] == 0) { if (n != 0) { n--; }
else {int k = rand() % 3;
if (k == 0 || k == 1) {a[i][j] = 2; return; }
else {a[i][j] = 4; return; } }
}
}
}
}
void yes( ) //游戏是否结束
{ for (int i = 0; i 4; i++)
{for (int j = 0; j 3; j++)
{if (a[i][j] == a[i][j + 1] || a[j][i] == a[j + 1][i]) {over = 0; return; }}
}
over = 1;
}
void gtxy(int x, int y) //控制光标位置的函数
{ COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
在屏幕上输出 “This is a C program。”
#include//这是编译预处理指令
int main() //定义主函数
{ //函数开始的标志
printf ("This is a C program。\n");//输出所指定的一行信息
return 0; //函数执行完毕之后返回函数值0
} //函数结束的标志。
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
#include "stdio.h"
int main()
{
int a[3][4],i,j,sum=0,max,min;
printf("请输入12个整数:\n");
for(i=0;i3;i++)
for(j=0;j4;j++)
{
scanf("%d",a[i][j]);
sum+=a[i][j];
}
max=min=a[0][0];
for(i=0;i3;i++)
for(j=0;j4;j++)
{
if(a[i][j]max)
max=a[i][j];
if(a[i][j]min)
min=a[i][j];
}
printf("输入数据的最大值为:%d,最小值为:%d,和为:%d\n",max,min,sum);
}
第一个:
#include stdio.h
int main(int argc, char *argv[])
{
char a;
scanf("%c", a);
printf("大写字母为%c\n", a-32);
return 0;
}
第二个:
#include stdio.h
int main(int argc, char *argv[])
{
char A;
scanf("%c", A);
printf("八进制:%o, 十六进制:%#x 十进制:%d\n", A, A, A);
return 0;
}
第三个:
#include stdio.h
int main(int argc, char *argv[])
{
float a = 0.0f;//底面半径
float b = 0.0f;//高
float c1 = 0.0f;//底面周长
float c2 = 0.0f;//底面积
float c3 = 0.0f;//侧面积
float c4 = 0.0f;//表面积
float c5 = 0.0f;//体积
scanf("%f", a);
scanf("%f", b);
c1 = a*3.14*a;
c2 = 3.14*a*a;
c3 = c2*b;
c4 = c3+c2*2;
c5 = c2*b;
printf("表面积:%f\n", c4);
printf("体积:%f\n", c5);
return 0;
}
很多程序都是非常简单的:
1.输入2个正整数m和n,求其最大公约数和最小公倍数
#includestdio.h
#includemath.h
int main()
{
int m,n,p,q,s,r;
printf("请输入两个正整数;m,n\n");
scanf("%d,%d",m,n);
s=m*n;
if(mn)
{
p=m;
m=n;
n=p;
}
printf("%d\t%d\n",m,n);/*按从大到小输出m,n */
while(n!=0)
{
q=m%n;
m=n;
n=q;
}
/*是不是m才是最大公约数啊*/
r=s/m;
printf("m和n最大公约数为 %d\n",m);
printf("m和n最小公倍数为 %d\n",r);/*m和n的积除以m和n的最大公约数即为最小公倍数*/
return 0;
}
2.输出100以内能被3整除且个位数为6的所有整数。
#includestdio.h
int main(void)
{
int i;
for(i=1;i=100;i++)
if(i%3==0i%10==6)printf("%d ",i);
return 0;
}
3. 编程计算从1到10各数阶乘的和,即1! + 2! + 3! + …… + 9! + 10! 的和
#includestdio.h
int main(void)
{
int sum,i,term;
sum=0;
term=1;
for(i=1;i=10;i++)
{
term=term*i;
sum=sum+term;
printf("%d的阶乘 %d\n",i,term);
}
printf("1到10各数阶乘的和 %d\n",sum);
return 0;
}
4.使用嵌套循环产生下列由大写字母组成的图
#includestdio.h
int main(void)
{
char ch1,ch2;
for(ch1='A';ch1='Z';ch1++)
{
for(ch2='A';ch2=ch1;ch2++)
printf("%c",ch2);
printf("\n");
}
return 0;
}
5. 编程输出所有三位数中的素数。
#includestdio.h
int main(void)
{
int x,i;
for(x=100;x=999;x++)
{
for(i=2;ix/2;i++)
if(x%i==0)break;
if(i==x/2)printf("%d ",x);
}
return 0;
}
6. 定义一个函数even(),判断一个整数是否是偶数。如果是偶数返回1,否则返回0。(要求包括能使程序正常运行的主函数)
#includestdio.h
int main(void)
{
int even(int);
int x,y;
scanf("%d",x);
y=even(x);
if(y==1)
printf("%d 是偶数\n",x);
else
printf("%d 是奇数\n",x);
return 0;
}
int even(int x)
{
if(x%2==0)
return 1;
else
return 0;
}
7. 编写函数mypow,求整型变量x的y次方。(要求包括能使程序正常运行的主函数)
#includestdio.h
int main(void)
{
int mypow(int,int);
int x,y,s;
scanf("%d%d",x,y);
s=mypow(x,y);
printf("%d的%d次方是 %d\n",x,y,s);
return 0;
}
int mypow(int x,int y)
{
int sum,i;
sum=1;
for(i=1;i=y;i++)
sum=sum*x;
return sum;
}
8.输入一个3位整数,输出它的逆序数。例如,输入127,输出应该是721。
#includestdio.h
int main(void)
{
int x,y;
scanf("%d",x);
y=x/100+x/10%10*10+x%10*100;
printf("%d的逆序数 %d\n",x,y);
return 0;
}
#include stdio.h
int main()
{
double a,b,c;
scanf("%lf",a);
scanf("%lf",b);
c=a+b;
printf("first number:%.2lf",a);
printf("\nsecond number%.2lf",b);
printf("\n\t%.2lf",a);
printf("\n+\t%.2lf",b);
printf("\n-------------\n");
printf(" %.2lf\n",c);
return 0;
}
在工作场所之外,事情 总结和处理 我们的影响 长度 常年 。我们必须做一个糟糕的工作 总结,也许 赞助 本身...
基本上,对于 专业人士来说,他们都需要 写自己 的东西 总结。如果他们这样对付 销售 员工 ,他们怎么能写出自...
口吃理解 是一种正在学习中学习 外部体验战斗融合 的设备 。正常情况下,口吃理解 是一个同样常见的 使用 的话...
生理 健康 学育是基于 教学心理 、生理 成长 的纪律 ,运用生理 教学的学育要领 ,创造出 教学优越 的生理...
寒假又过去了 ,很多 的空儿该谢教了,谢教了,谢教了,又开始准备 写工作疑惑,开始找东西 。然而, 很多 人对...
通过添加 生理 训练的过程,我们可以知道 对生理 健康 的一点回答,所以如何处理 加入 生理 训练的口腔患者理...