编写题解 2947: 不吉利日期
#include<stdio.h>
int main()
{
int w,i;
scanf("%d\n",&w);//某年的一月一日是星期w
int num=13;
for(i=1;i<=12;i++)//定义一年当中12个月
{
if((num-(7-w+1))%7==5)//此处为计算每月13是否是周五的判断条件
//看第一个的13,然后一月一日是星期w,要想结束这个包含w的星期,则需要
//让13减去w这一天以及后面的几个星期几,然后再开始进行%7循环
printf("%d\n",i);
if(i==1 || i==3 || i==5 || i==7 || i==8 || i==10 || i==12)
num=num+31;
else if(i==4 || i==6 || i==9 || i==11)
num=num+30;
else
num=num+28;
}
return 0;
}
题目 2948: 八进制小数
#include<stdio.h>
#include<math.h>
#include<string.h>//strlen()的头文件
int main()
{
double d,num=0;
int i;
char b[20];
scanf("%s",b);
int a=strlen(b);
for(i=2;i<a;i++)
{
num=num+(b[i]-'0')*pow(0.125,i-1);//字符进行计算的时候,一定要记得减'0';
}
//7*0.125+5*0.125*0.125;
printf("%s [8] = %.45g [10]",b,num);//%.45g省略掉小数后面多余的0
return 0;
}
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(){
int a[26]={0};
char b[81];
int i,j,m=0;
for(i=0;i<4;i++){
// for(j=0;j<81;j++) b[j]=0;
gets(b);
for(j=0;b[j]!='\0';j++){
if(b[j]>='A'&& b[j]<='Z')
a[b[j]-'A']++;
}
}
for(i=0;i<26;i++){
if(a[i]>m) m=a[i];
}
for(i=m;i>0;i--){
for(j=0;j<26;j++){
if(a[j]>=i) printf("* ");
if(a[j]<i) printf(" ");
}
printf("\n");
}
for(i=0;i<26;i++) printf("%c ",'A'+i);
printf("\n");
}
题目 2949: 垂直直方图 最后一个其实是编译错误的,因为我并不能把*号和A-Z字母对齐,我看了很多博主的,然后输入进去也是不可以,求解.