C语言习题————第一天

1.数字1.2.3.4能组成多少互不相同且无重复数字的三位数?都是多少?

(我用的dev)(注释里标星的是重要等级)

输出样例

能组成24个无重复数字的三位数
分别是:
123 124 132 134 142 143 213 214 231 234 241 243 312 314 321 324 341 342 412 413 421 423 431 432

代码

#include<stdio.h>
main()
{
	int i,j,k,a[100],n;   //数组:三位数共100个(比输出的总数大就可以)
	for(i=1;i<=4;i++)
		for(j=1;j<=4;j++)
			for(k=1;k<=4;k++)  //由1,2,3,4组成,每一位循环四次
				if(i!=j&&i!=k&&j!=k)   //各个数字不相同
				{
					a[n]=i*100+j*10+k;  //组成三位数
					n++;
				}
	printf("能组成%d个无重复数字的三位数\n",n);
	printf("分别是:\n"); 
	for(i=0;i<n;i++)
		printf("%d ",a[i]);//*****%d后面有空格,而不是\t(改了好几遍、);
 } 

这里我去查了 \t 相当于 tab;\n相当于 enter ;空格的话直接在%d后面加空格就好了

(慢了点)

2.输入某年某月某日,判断这天是这年的第几天

输入样例1

2022

2

2

 输出样例1

2022年2月2日是这一年的第33天

输入样例2

2132

5

30

输出样例2 

请输入年:2132
请输入月:5
请输入日:30
2132年5月30日是这一年的第151天

#include<stdio.h> 
main()
{
	int year,month,day,num=0;
	printf("请输入年:");
	scanf("%d",&year);
	printf("请输入月:");
	scanf("%d",&month);
	printf("请输入日:");
	scanf("%d",&day);
	 
	switch(month)	//****switch格式(判断月份)
	{
		case 1:  num=0;									break; //一定要加break;!!!
		case 2:  num=31; 								break;
		case 3:  num=31+28;								break;
		case 4:  num=31+28+31;							break;
		case 5:  num=31+28+31+30;						break;
		case 6:  num=31+28+31+30+31;					break;
		case 7:  num=31+28+31+30+31+30;					break;
		case 8:  num=31+28+31+30+31+30+31;				break;
		case 9:  num=31+28+31+30+31+30+31+31;			break;
		case 10: num=31+28+31+30+31+30+31+31+30;		break;
		case 11: num=31+28+31+30+31+30+31+31+30+31;		break;
		case 12: num=31+28+31+30+31+30+31+31+30+31+30;	break;
		default:;	//如果无误的话,进行下一步 
	}
	num+=day;
	if(year%4==0&&year%100!=0||year%400==0)    //&&相当于and,||相当于or
		if(month>2)
			num++;
	printf("%d年%d月%d日是这一年的第%d天",year,month,day,num);	
 } 

 累死!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值