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);
}
累死!