基础习题

1日期问题

题解如下:

#include<stdio.h>
#include<math.h>
int year [2][13]=
{
    {0,31,28,31,30,31,30,31,31,30,31,30,31},
    {0,31,29,31,30,31,30,31,31,30,31,30,31},
};
bool isLeap(int year)//判断是否是闰年 
{
    return ((year%4==0 && year%100!=0)||(year%400==0)) ;
}

int main()
{
    int t1,y1,m1,d1;
    int t2,y2,m2,d2;
    while(scanf("%d%d",&t1,&t2)!=EOF){
        
        if(t1>t2) 
        {
            int n=t1;
            t1=t2;
            t2=n;
        }
        y1=t1/10000,m1=t1%10000/100, d1=t1%10;
        y2=t2/10000,m2=t2%10000/100, d2=t2%10;
        int ans=1;
        while(!(y1==y2&&m1==m2&&d1==d2))
        {
            d1++;
            ans++;
            if(d1==year[isLeap(y1)][m1]+1 ) //满当月天数 
            {
                m1++;
                d1=1;
            }
            if(m1>12)
            {
                y1++;
                m1=1;
            }
            
        }
        
        printf("%d",ans);
        
        
    }
    
    return 0;
        
} 

2)闰年:

能被4整除但是不能被100整除 ,或者是能被100整除的年份

if( ((0 == year%4)&&(0 != year%100)) ||(0 == year %400) )

{

//满足该条件的yeat就是闰年。

}

2. 进制问题

  • p进制数x转化为十进制y 
#include<stdio.h>
//p进制数x转化为十进制y 
int main()
{
    int p,x;
    scanf("%d%d",&p,&x);
    int y=0,product =1;
    while(x!=0){
        y=y+(x%10)*product;
        x=x/10;
        product*=p;
    }
    printf("%d",y);
    return 0;
        
} 
  • 10进制数y转化为Q进制z
#include<stdio.h>
//10进制数y转化为Q进制z
int main()
{
    int z[40],num=0;
    int y,q;
    scanf("%d%d",&y,&q);
    do{
        z[num++]=y%q;
        y=y/q;
    }while(y!=0);
    for(int i=num-1;i--;i>0)
    {
        printf("%d",z[i]);
    }

    return 0;
        
} 

3字符串问题

题解如下:

#include<stdio.h>
#include<math.h>
#include<cstring>
int main()
{
    
    char str[90][90];
    int i=0;

    while(scanf("%s",str[i])!=EOF)
    {
    i++;
            
    }
    
    for(i=i-1;i>=0;i--)
    {
        printf("%s",str[i]);
        if(i>0) printf(" ");
    }


    return 0;
        
} 
原文地址:https://www.cnblogs.com/wml2018/p/12156730.html