头像

AroPark

邯郸学院




离线:5小时前


最近来访(5)
用户头像
zhengxujie
用户头像
csp123
用户头像
γχc
用户头像
星光璀璨
用户头像
1357649762


AroPark
2天前
#include <iostream>

using namespace std;

//后面的100是最大数然后前面的不可以省略
void print2D(int a[][100], int row, int col)
{
    for(int i=0; i<row; i++)
    {
        for(int j=0; j<col; j++)
        {
            cout << a[i][j] << " ";
        }
        cout << endl;
    }
}

int main()
{
    int row,col;
    cin >> row >> col;
    int a[100][100];
    for(int i=0; i<row; i++)
    {
        for(int j=0; j<col; j++)
        {
            cin >> a[i][j];
        }
    }
    print2D(a,row,col);
    return 0;
}



AroPark
10天前
#include <iostream>

using namespace std;

int main()
{
    char c;
    string s,s1,s2;
    while(cin >> c,c != ',') s += c;
    while(cin >> c,c != ',') s1 += c;
    while(cin >> c) s2 += c;

    if(s.size() < s1.size() || s.size() < s2.size()) puts("-1");
    else
    {
        int l=0;
        for(; l+s1.size() <= s.size(); l++)
        {
            int k=0;
            while(k < s1.size())
            {
                if(s[l+k] != s1[k]) break;
                k++;
            }
            if(k == s1.size()) break;
        }

        int r=s.size()-s2.size();
        for(; r>=0; r--)
        {
            int k=0;
            while(k < s2.size())
            {
                if(s[r+k] != s2[k]) break;
                k++;
            }
            if(k == s2.size()) break;
        }

        l += s1.size()-1;

        if(l >= r) puts("-1");
        else printf("%d",r-l-1);
    }
    return 0;
}

上下一致 只是for和while

#include <iostream>

using namespace std;

int main()
{
    char c;
    string s,s1,s2;
    while(cin >> c,c != ',') s += c;
    while(cin >> c,c != ',') s1 += c;
    while(cin >> c) s2 += c;

    if(s.size() < s1.size() || s.size() < s2.size()) puts("-1");
    else
    {
        int l=0;
        while(l + s1.size() <= s.size())
        {
            int k=0;
            while(k < s1.size())
            {
                if(s[l+k] != s1[k]) break;
                k++;
            }
            if(k == s1.size()) break;
            l++;
        }

        int r=s.size()-s2.size();
        while(r >= 0)
        {
            int k=0;
            while(k < s2.size())
            {
                if(s[r+k] != s2[k]) break;
                k++;
            }
            if(k == s2.size()) break;
            r--;
        }
        l += s1.size()-1;

        if(l >= r) puts("-1");
        else printf("%d",r-l-1);
    }
    return 0;
}



AroPark
11天前

思路

  1. 先将字符串排序
  2. 将大字符串进行循环移位
  3. 从头开始进行对应长度的对比 并预留出小字符串的长度
  4. 挨个字符进行判断
#include <iostream>
#include <algorithm>

using namespace std;

int main()
{
    string a,b;
    cin >> a >> b;
    if(a.size() < b.size()) swap(a,b);
    //循环移位大字符串
    for(int i=0; i<a.size(); i++)
    {
        a = a.substr(1)+a[0];
        //这里就是要预留出b.size()的位置出来
        for(int j=0; j+b.size()<=a.size(); j++)
        {
            int k=0;
            for(; k<b.size(); k++)
            {
                if(a[j+k] != b[k])
                break;
            }
            if(k == b.size())
            {
                puts("true");
                return 0;
            }
        }
    }
    puts("false");
    return 0;
}



AroPark
11天前
#include <iostream>
#include <sstream>

using namespace std;

int main()
{
    string s;
    getline(cin,s);

    stringstream ssin(s);
    string str,str1,res;
    while(ssin >> str)
    {
        if(str[str.size()-1] == '.')
        {
            if(str.size()-1 > str1.size())
            {
                for(int i=0; i<str.size()-1; i++)
                {
                    cout << str[i];
                }
                return 0;
            }
            //作用 为了判断最后一个字符串之后直接结束循环 不进行下面判断
            continue;
        }

        if(str.size() > str1.size()) str1 = str;
    }
    cout << str1;

    return 0;
}



AroPark
11天前

更改字符串的值输出

#include <iostream>

using namespace std;

int main()
{
    string s;
    getline(cin,s);
    int x=s[0];
    for(int i=0; i<s.size(); i++)
    {
        if(i==s.size()-1) s[i]=s[i]+x;
        else s[i]=s[i]+s[i+1];
    }
    cout << s;
    return 0;
}

不更改字符串的值 直接输出

#include <iostream>

using namespace std;

int main()
{
    string s;
    getline(cin,s);
    int x=s[0];
    for(int i=0; i<s.size(); i++)
    {
        cout << (char)(s[i] + s[(i + 1) % s.size()]);
    }
    return 0;
}



AroPark
12天前

闫总思想

#include <iostream>

using namespace std;
int m[100][100];

int main()
{
    int n;
    while(cin >> n,n)
    {
        for(int i=0; i<n; i++)
        {
            for(int j=0; j<n; j++)
            {
                int x=1;
                for(int k=0; k<i+j; k++) x *= 2;
                m[i][j]=x;
                cout << m[i][j] << " ";
            }
            cout << endl;
        }
        cout << endl;
    }
    return 0;
}



AroPark
14天前

规律 j<i

#include <iostream>
#include <cstdio>

using namespace std;

int main()
{
    char c;
    double x,sum=0,size=0;
    cin >> c;
    for(int i=0; i<12; i++)
    {
        for(int j=0; j<12; j++)
        {
            cin >> x;
            if(j<i) sum += x,size++;
        }
    }
    printf("%.1lf",c == 'S' ? sum : sum/size);
    return 0;
}



AroPark
14天前

找规律 i+j>11

#include <iostream>
#include <cstdio>

using namespace std;

int main()
{
    char c;
    double x,sum=0,size=0;
    cin >> c;
    for(int i=0; i<12; i++)
    {
        for(int j=0; j<12; j++)
        {
            cin >> x;
            if(11-i<j) sum += x,size++;
        }
    }
    printf("%.1lf",c == 'S' ? sum : sum/size);
    return 0;
}



AroPark
14天前

优化前

#include <iostream>
#include <cstdio>

using namespace std;

int main()
{
    int x;
    char c;
    cin >> x >> c;
    double M[12][12],sum=0;

    for(int i=0; i<12; i++)
    {
        for(int j=0; j<12; j++)
        {
            double X;
            cin >> X;
            M[i][j] = X;
        }
    }

    for(int i=0; i<12; i++)
    {
        for(int j=0; j<12; j++)
        {
            if(j == x)
            {
            sum += M[i][j];
            break;
            }
        }
    }
    printf("%.1lf",c == 'S' ? sum : sum/12);
    return 0;
}

优化后

#include <iostream>
#include <cstdio>

using namespace std;

int main()
{
    int x;
    char c;
    cin >> x >> c;
    double M[12][12],sum=0;

    for(int i=0; i<12; i++)
    {
        for(int j=0; j<12; j++)
        {
            double X;
            cin >> X;
            if (j == x) sum += X;
        }
    }

    printf("%.1lf",c == 'S' ? sum : sum/12);
    return 0;
}



AroPark
14天前

选取最大值 大于就替换

#include <iostream>
#include <cstdio>

using namespace std;

int main()
{
    int n;
    cin >> n;
    int X[n]={0};
    int min = 1000,loc;
    for(int i=0; i<n; i++)
    {
        int x;
        cin >> x;
        X[i] = x;
        if(min > X[i]) min = X[i],loc = i;
    }

    printf("Minimum value: %d\n",min);
    printf("Position: %d",loc);
    return 0;
}