zoukankan      html  css  js  c++  java
  • C++实验五

    【问题描述】

    编写如下原型的函数:

    void split(double x,intiPart,doublefPart);

    提取出数据x的整数部分与小数部分,分别放于iPart与fPart处,由于形参iPart与fPart都是指针,从而可实现将这两个结果“带回”到主函数中。

    在主函数中

    输入一个数

    输出它的整数部分和小数部分,用空格隔开。

    提示:一个double类型数,强制类型转换后就是int,也就是整数部分,差为小数部分。这两个值用指针iPart和指针fPart带回(通过修改指针的目标变量值。)

    【输入形式】一个数

    【输出形式】整数部分 小数部分,用空格隔开

    【样例输入】12.3
    【样例输出】12 0.3

    #include<iostream>
    using namespace std;
    void split(double x, int* ipart, double* fpart)
    {
        *ipart = (int)x;
        *fpart = x - int(x);
    
    }
    int main()
    {
        double x;
        cin >> x;
        int i; double f;
        split(x, &i, &f);
        cout << i << ' ' << f;
        return 0;
    }

    【问题描述】

    编制具有如下原型的函数findLast:

    charfindLast(charsourceStr,char*subStr);

    findLast函数则要返回源串sourceStr中最后一次出现subStr子字符串的头字符位置。

    而后编制主函数,输入两个字符串,将它们用作实参来调用这两个函数,如果返回NULL输出-1,否则输出子字符串出现时头字符在原字符串的下标,每个结果占一行。

    要求实现程序中不可使用“string.h”头文件内有关寻找子串的标准库函数。

    【输入形式】输入源串sourceStr,子字符串subStr。

    【输出形式】子字符串subStr最后一次在源串sourceStr中出现的位置

    【样例输入】

    welcometochinauniversityofminingandtechnology

    in

    【样例输出】29

    #include<iostream>
    using namespace std;
    char *find(char*source,char*sub)
    {
        char *temp=NULL;
        char *s1,*s2;
        for(int i=0;source[i]!='';i++)
        {
            if(source[i]==*sub)
            {
                int flag=1;
                s1=source+i;s2=sub;
                while(*s2!='')
                {
                    if(*s1!=*s2)
                    flag=0;
                    s1++;s2++;
                }
                if(flag) temp=source+i;
            }
        }
        return temp;
    }
    int main()
    {
        char s[500],sub[500];
        cin>>s>>sub;
        char *temp=find(s,sub);
        if(temp)cout<<temp-s;
        else
        cout<<-1;
        return 0;
    }

    如果是头次出现

    #include<iostream>
    using namespace std;
    char *find(char*source,char*sub)
    {
        char *temp=NULL;
        char *s1,*s2;
        for(int i=0;source[i]!='';i++)
        {
            if(source[i]==*sub)
            {
                int flag=1;
                s1=source+i;s2=sub;
                while(*s2!='')
                {
                    if(*s1!=*s2)
                    flag=0;
                    s1++;s2++;
                }
                if(flag) 
                {
                    temp=source+i;
                    break;
                }
            }
        }
        return temp;
    }
    int main()
    {
        char s[500],sub[500];
        cin>>s>>sub;
        char *temp=find(s,sub);
        if(temp)cout<<temp-s+1;
        else
        cout<<-1;
        return 0;
    }
  • 相关阅读:
    Web开发之编码与解码、签名、加密与解密
    深入解析单例线程安全问题
    PL/SQL&存储过程||存储函数&触发器
    oracle
    子查询中的NULL问题
    springmvc适配器的应用
    MySQL
    Django rest framework(5)----解析器
    Django rest framework(4)----版本
    1. Django每日一码 之原生View源码
  • 原文地址:https://www.cnblogs.com/dk2154/p/14178888.html
Copyright © 2011-2022 走看看