• 指针知识复习


    基础1
    输入年和天数,输出对应的年月日
    样例输入
    2000 61
    样例输出
    2000-3-1

    #include<stdio.h> 
    
    void GetData(int *year,int *data) 
    {//该函数读入年份和天数,并通过形参指针将结果写入主函数 
        scanf("%d%d",year,data);
    }
    
    void Count(int year,int data,int *month,int *day)
    {//该函数计算第几月份和第几天 
        int num[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}};
        int find = 0;
        int i;
        if(year%4 == 0&&year%100!=0||year%400== 0)
            find  = 1;
        for(i = 1;data-num[find][i]>= 0;i++)
            data -= num[find][i];
        *month = i;
        *day = data;
    }
    
    void PrintData(int year,int month,int day)
    {//该函数输出年月日 
        printf("%d-%d-%d
    ",year,month,day);
    }
    
    int main()
    {
        int year,data,month,day;
        GetData(&year,&data);
        Count(year,data,&month,&day);
        PrintData(year,month,day);
        return 0;
    }

    基础2
    实数的截断取整,去掉小数的前导0,只取整数部分,否则输出0

    #include<stdio.h>
    
    int main()
    {
        char str[100];
        gets(str);
        char *p = str;
        char *q = NULL;
        while(*p == '0')
            p ++;
        if(*p == ''||*p == '.')
            p--;
        while(*p!='.')
        {
            printf("%c",*p);
            p++;
            if(p==NULL||*p =='')
                break;
        }
        printf("
    ");
        return 0;
    }

    基础3
    将十进制数转换为r进制

    #include<stdio.h>
    #include<string.h>
    void DTor(int n,int r,char *str)
    {
        char p[] ="0123456789abcdef";
        int k = 0,i,d;
        while(n)
        {
            d = n%r;
            str[k] = p[d];
            k++;
            n = n/r;
        }
        for(i = k-1; i >= 0; i--)
            printf("%c",str[i]);
        printf("
    ");
    }
    
    int main()
    {
        int n;
        int r;
        char str[100];
        scanf("%d%d",&n,&r);
        DTor(n,r,str);
        return 0;
    }

    基础4
    输出字符串的最后三个字符

    #include<stdio.h>
    #include<string.h>
    
    int main()
    {
        char str[100];
        char *p;
        gets(str); 
        int l = strlen(str);
        p = str+l-3;
        puts(p);
        return 0;
     } 

    基础5
    账单处理,输入一个整数n(n<100),再输入n行账单信息,每一行由事物的名字name和对应的花费c组成,长度不超过200,中间会有一个或多个空格,而每一行的开头和结尾没有空格。
    输出总的花费,小数点后保留一位数字
    输入样例
    3
    apple 2.3
    BUY clothes for girl friend 260.5
    Go to cinema 30
    输出样例
    292.8

    #include<stdio.h>
    
    void Count(int n)
    {
        int i;
        char *j;
        char str[100];
        double d,sum = 0.0;
        for( i = 1; i <= n; i++)
        {
            gets(str);
            for(j =str;j!=NULL;j++)
            {
                if(*j >= '0'&&*j<= '9')
                    break;
            }
            sscanf(j,"%lf",&d);
            sum += d;
        }
        printf("%.1lf
    ",sum);
    }
    
    int main()
    {
        int n;
        scanf("%d",&n);
        getchar();
        Count(n);
        return 0;
    }

    基础6
    动态申请一个一维数组。

    #include<stdio.h>
    #include<stdlib.h>
    
    int main()
    {
        int n,i;
        int *p;
        scanf("%d",&n);
        p = (int*)malloc(n*sizeof(int));
        for( i =1; i <= n; i ++)
            scanf("%d",p+i);
        for( i = 1; i <= n; i ++)
            printf("%d ",*(p+i));
        printf("
    ");
        return 0;   
    } 
  • 相关阅读:
    27、驱动调试之修改系统时钟中断定位系统僵死问题
    25、驱动调试之打印到proc虚拟文件
    24、驱动调试之printk
    23、uevent/hotplug热拔插机制
    22、DMA驱动程序框架
    21、IIS声卡驱动程序
    20、RTC驱动程序
    ZOJ
    HDU-4272 LianLianKan (dfs)
    UVA-624 CD (01背包+路径记忆)
  • 原文地址:https://www.cnblogs.com/hellocheng/p/7350140.html
Copyright © 2020-2023  润新知