C语言小程序

前言

        想学好C语言,练习是必须的,今天我给大家带来了几个小程序,新手可以练下。

 

1.switch语句实例

/*********************************************
输入一个日期,判断这个日期是那年的第几天
********************************************/

#include <stdio.h>

int main(int argc, const char *argv[])
{
	unsigned short yes,month,day,d;

	printf("请输入年份:");
	scanf("%hd",&yes);
	printf("请输入月份:");
	scanf("%hd",&month);
	printf("请输入日期:");
	scanf("%hd",&day);

	//if(yes<0||(month<||month>12)||(day<1||day>31))
	if(yes<0||month<1||month>12||day<1)
	{
		printf("您的输入有误:\n");
		return 0;
	}

	if(yes%4==0&&yes/100!=0) d = 1;
	else d = 0;

	switch(month)
	{
	case 1:
		if(day > 31)
		{
			printf("您的输入有误:\n");
			return 0;
		}
		printf("这是这一年的第%hd天\n",day);
		break;
	case 2:
		if((d == 1 && day>29)||(d == 0 && day>28))
		{
				printf("您的输入有误:\n");
				return 0;
		}
		printf("这是这一年的第%hd天\n",31 + day);
		break;
	case 3:
		if(day > 31)
		{
			printf("您的输入有误:\n");
			return 0;
		}
		printf("这是这一年的第%hd天\n",31 +28+ day + d);
		break;
	case 4:
		if(day > 30)
		{
			printf("您的输入有误:\n");
			return 0;
		}
		printf("这是这一年的第%hd天\n",31+28+31+d+day);
		break;
	case 5:
		if(day > 31)
		{
			printf("您的输入有误:\n");
			return 0;
		}
		printf("这是这一年的第%hd天\n",31+28+31+30+d+day);
		break;
	case 6:
		if(day > 30)
		{
			printf("您的输入有误:\n");
			return 0;
		}
		printf("这是这一年的第%hd天\n",31+28+31+30+31+d+day);
		break;
	case 7:
		if(day > 31)
		{
			printf("您的输入有误:\n");
			return 0;
		}
		printf("这是这一年的第%hd天\n",31+28+31+30+31+30+d+day);
		break;
	case 8:
		if(day > 31)
		{
			printf("您的输入有误:\n");
			return 0;
		}
		printf("这是这一年的第%hd天\n",31+28+31+30+31+30+31+d+day);
		break;
	case 9:
		if(day > 30)
		{
			printf("您的输入有误:\n");
			return 0;
		}
		printf("这是这一年的第%hd天\n",31+28+31+30+31+30+31+31+d+day);
		break;
	case 10:
		if(day > 31)
		{
			printf("您的输入有误:\n");
			return 0;
		}
		printf("这是这一年的第%hd天\n",31+28+31+30+31+30+31+31+30+d+day);
		break;
	case 11:
		if(day > 30)
		{
			printf("您的输入有误:\n");
			return 0;
		}
		printf("这是这一年的第%hd天\n",31+28+31+30+31+30+31+31+30+31+d+day);
		break;
	case 12:
		if(day > 31)
		{
			printf("您的输入有误:\n");
			return 0;
		}
		printf("这是这一年的第%hd天\n",31+28+31+30+31+30+31+31+30+31+30+d+day);
		break;
	default:
		break;
	}

	return 0;
}

2.猴子吃桃问题

/*************************************************
问题描述:
猴子第一天摘了若干个桃,第一天吃了一半,感觉还不过瘾,多吃了一个;
第二天又吃了一半,感觉还不过瘾,又多吃了一个;
以后按照这种方式吃桃,到第十天吃桃前发现只剩一个桃了;
问:猴子第一天摘了多少个桃?

**************************************************/

#include <stdio.h>

int main(int argc, const char *argv[])
{
	unsigned short sum = 1,day=9;
	while(1)
	{
		sum = (sum+1)*2;
		day--;
		if(day < 1) break;
	}
	printf("猴子第一天摘了%hd个桃\n",sum);
	return 0;
}

3.身高预测问题

/************************************
身高预测问题
设faHeight为父亲身高,moHeight为母亲身高。
身高预测为:
男性身高 = (faHeight+moHeight)*0.54;
女性身高 = (faHeight*0.923+moHeight)/2;
此外,孩子身高还与孩子自身是否爱运动,是否注意饮食有关,具体如下:
热爱体育锻炼:身高加增2%
良好的饮食习惯:身高增加1.5%
************************************/
#include <stdio.h>
#include <stdbool.h>

int main(int argc, const char *argv[])
{
	float faHeight,moHeight,H;
	char duanl,yinshi,boy;
	bool key = true;
	printf("请输入父亲身高:");
	scanf("%f",&faHeight);
	printf("请输入母亲身高:");
	scanf("%f",&moHeight);
	getchar();

	while(key){
		printf("是否为男孩(Y/N):");
		scanf("%c",&boy);
		getchar();
		if(boy=='y'||boy=='Y'||boy=='n'||boy=='N') key=false;
		printf("请输入Y/N\n");
	}
	key = true;
	while(key){
		printf("是否为热爱锻炼(Y/N):");
		scanf("%c",&duanl);
		getchar();
		if(duanl=='y'||duanl=='Y'||duanl=='n'||duanl=='N') key=false;
		printf("请输入Y/N\n");
	}
	key = true;
	while(key){
		printf("是否注意饮食(Y/N):");
		scanf("%c",&yinshi);
		getchar();
		if(yinshi=='y'||yinshi=='Y'||yinshi=='n'||yinshi=='N') key=false;
		printf("请输入Y/N\n");
	}

	if(boy=='Y'||boy=='y') {
		H = (faHeight+moHeight)*0.54;
	}
	else {
		H = (faHeight*0.923+moHeight)/2;
	}

	if(duanl=='Y'||duanl=='y') H=H*(1+0.02);
	if(yinshi=='Y'||yinshi=='y') H=H*(1+0.015);
	printf("您的预测身高为:%.2fcm\n",H);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值