C语言程序设计求助

2025-05-23 00:15:37
推荐回答(2个)
回答1:

#include 
#include 
#include 

long my_pow( int x, int n )
{
    int y=1, i=0;
    for( i=0; i    {
        y = y*x;
    }
    return y;
}

long func2( int **a, int m, int n )
{
    long s = 0;
    int i,j;
    for( s=0,i=0; i    {
        for( j=0; j        {
            int cur = *((int*)a + i*n + j );
            if ( i==j )
                s = s + cur;
        }
    }
    return s;
}

int revert( char *a )
{
    int len = strlen( a ), i=0;
    for( i=0; i    {
        char t = a[i];
        a[i] = a[len-i-1];
        a[len-i-1] = t;
    }
    return 0;
}

char* strDel( char *str, int m, int n  )
{
    int len = strlen( str ), i=0, k=0;
    if ( m+n > len )
    {
        printf( "%d + %d > len:%d\n", m, n, len );
        return NULL;
    }
    char *del;
    del = (char*)malloc(n);
    memcpy( del, str+m, n );
    del[n] = 0;
    for( k=m,i=0; str[m+n+i]; i++ )
    {
        str[m+i] = str[m+n+i];
    }
    str[m+i] = 0;
    return del;
}

int str2int( char *str )
{
    int s=0, i=0, j=0;
    for( s=0,i=0,j=0; str[i]; i++ )
    {
        if ( str[i]>='0' && str[i]<='9' )
            s = s*10 + str[i]-'0';
    }
    return s;
}

int sum( int n )
{
    if ( n == 1 )
        return 1;
    return n + sum( n-1 );
}

void main()
{
    printf( "1. 2^3 = %ld\n", my_pow(2, 3) );

    int a[4][4] = {
        {1,2,3,4},
        {5,6,7,8},
        {9,10,11,12},
        {13,14,15,16}
    };
    printf( "2. %ld\n", func2( (int**)a, 4, 4) );
    char s[12];
    sprintf( s, "abcdefg" );
    revert( s );
    printf( "3. revert(abcdefg)=%s\n", s );
    printf( "4. %s,", strDel( s, 2, 3 ) );
    printf( "[%s]\n", s );

    printf( "5. 123a4=%d\n", str2int("123a4") );
    printf( "6. 1+2+3+4+..+100=%d\n", sum( 100 ) );
}

回答2:

这些都很简单啊,自己琢磨下就能做出来