这两个题用自定义函数咋做

输出可大可小的直角三角形图案,最外层是第一层,要求每层上用的数字与层数相同。
输入输出示例:
输入:3
输出:
1 1 1 1 1
1 2 2 2
1 2 3
1 2
1
输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果在第一个十六进制字符之前存在字符“-”,则代表该数是负数。(十六进制字符0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,A,B,C,D,E,F)
输入样例:
+-P-xf4+-1!#
输出样例:
-3905

第一行 2乘以输入数字Seq-1个
之后每行减一 所以
for (int i = 0; i < 2Seq-1; i++)
{
for (int j = 0; j < 2
Seq-i-1; j++)
{
}
printf("\r\n");
}
}
又因为每行都不超过此行行数,超过了就一直等于这行行数,所以条件判断 iShu = (j + 1) < (i + 1) ? (j + 1) : (i + 1);


// caimi16.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])
{

    int Seq = 0;
    printf("输入一个数");
    scanf_s("%d", &Seq);
    int iShu = 0;
    if (Seq>0)
    {
        for (int i = 0; i < 2*Seq-1; i++)
        {
            for (int j = 0; j < 2*Seq-i-1; j++)
            {
                iShu = (j + 1) < (i + 1) ? (j + 1) : (i + 1);
                printf("%d ", iShu);
            }
            printf("\r\n");
        }
    }

    _tsystem(L"pause");
    return 0;
}


#include<iostream>
using namespace std ;

void tuai(int x){
int i,j,k ;
int **cube ;
cube=new int * [2*x] ;
for(i=0;i<2*x;i++)
cube[i]=new int [2*x] ;
for(i=1;i<=x;i++)
{
for(j=1,k=1;j<=x;j++)
{
cube[i][j]=k ;
cube[i][2*x-j]=k ;
cube[2*x-i][j]=k ;
cube[2*x-i][2*x-j]=k ;
if(k<i)
k++ ;
}
}
for(i=1;i<2*x;i++)
{
for(j=1;j<2*x;j++)
cout<<cube[i][j]<<" " ;
cout<<endl ;
}
}
int main()
{
int x ;
cin>>x ;
tuai(x);
return 0;
} 

#include<iostream>
using namespace std;
void function1() { 
    int Seq;
    cin >> Seq;
    // 找规律,每行,对比i和j找最小的
    for (int i = 0; i < 2 * Seq - 1; i++) // 0 1 2 3 4 5 
    {
        for (int j = 0; j < 2 * Seq - i - 1; j++) // 0-4 0-3 0-2 0-1 
        {
            cout << ((j + 1) < (i + 1) ? (j + 1) : (i + 1)) << " ";
        }
        cout << endl;
    }
}

void function2() {
    string s;
    cin >> s;
    int i = 0,result=0;
    int negative = 0,start=0; // start表示合适字符出现否
    while (s[i] != '#') {
        if (s[i] >= '0' && s[i] <= '9') {
            start = 1;
            result *= 16;
            result += (int)(s[i] - '0');
        }
        else if (s[i] >= 'a' && s[i] <= 'f') {
            start = 1;
            result *= 16;
            result += (int)(s[i] - 'a')+10;
        }
        else if (s[i] >= 'A' && s[i] <= 'F') {
            start = 1;
            result *= 16;
            result += (int)(s[i] - 'A')+10;
        }
        else if (start == 0 && s[i] == '-') {
            negative = 1;
        }
        i++;
    }
    if (negative) result = -1 * result;
    cout << result<<endl;
}
int main() {
    function1();
    function2();
}