編寫一函數(shù)實(shí)現(xiàn)數(shù)組的遞歸求和
#include?<stdio.h>
#include?
"config.h"


int?sum(int?A[],?size_t?n)
{
????
if?(1?==?n)
????
{
????????
return?1;
????}

????
else
????
{
????????
return?sum(&A[n-1],?n-1)?+?n;
????}

}



int?main(void)
{
????
int?A[]?=?{?1,?2,?3,?5,?9,?1};

????printf(
"%d\n",?sum(A,?ARRAY_LENGTH(A)));

????
return?0;
}
頭文件config.h的內(nèi)容如下:
#ifndef?CONFIG_H
#define?CONFIG_H


#define?ARRAY_LENGTH(x)?sizeof(x)/sizeof(x[0])


#endif





編寫一函數(shù)實(shí)現(xiàn)str到long的轉(zhuǎn)換
#include?<stdio.h>
#include?
<string.h>
#include?
<assert.h>



long?str2long(const?char*?str)
{
????
long?result?=?0;

????
while?('\0'?!=?*str)
????
{
????????result?
=?result?*?10?+?(*str?-?'0');
????????
++str;
????}


????
return?result;
}





int?main(void)
{
????
char?*str?=?"1234";

????printf(
"\n%d\n",?str2long(str));

????
return?0;
}

上面的代碼沒(méi)有考慮負(fù)數(shù)^_^



實(shí)現(xiàn)strcpy函數(shù)
char?*mystrcpy(char?*dst,?const?char?*src)
{
????assert(NULL?
!=?dst?&&?NULL?!=?src);
????
while?(*dst++?=?*src++);
????
????
return?dst;
}
?


int?main(void)
{
????
char?*dst[20];
????
char?*src?=?"test";
????mystrcpy(dst,?src);

????puts(dst);

????
return?0;
}



判斷一個(gè)整數(shù)是否是回文
long?symm(long?n)
{
????
long?i,?m;
????m?
=?0;
????i?
=?n;
????
while?(i)
????
{
????????m?
=?m?*?10?+?i?%?10;
????????i?
/=?10;
????}

????
return?(n?==?m???1:0);
}



實(shí)現(xiàn)Insertion sort
#include?<stdio.h>
#include?
<string.h>

typedef?
int?ElemType;

void?InsertionSort(ElemType?A[],?size_t?n)
{
????
int?i;
????
int?pass;
????ElemType?tmp;

????
for?(pass?=?1;?pass?<?n;?pass++)
????
{
????????tmp?
=?A[pass];
????????
for?(?i?=?pass;?i?>?0?&&?A[i-1]?>?tmp;?i--)
????????
{
????????????A[i]?
=?A[i-1];
????????}

????????A[i]?
=?tmp;
????}

}


int?main(void)
{
????
int?i;
????ElemType?A[]?
=?{1,?2,?4,?8,?6,?98,?11,?25,?44,?35};

????puts(
"Before?sort:");
????
for(i?=?0;?i<?sizeof(A)/sizeof(ElemType);?i++)
????
{
????????printf(
"%d??",?A[i]);
????}

????printf(
"\n");

????InsertionSort(A,?
sizeof(A)/sizeof(ElemType));

????puts(
"After?sort:");
????
for(i?=?0;?i<?sizeof(A)/sizeof(ElemType);?i++)
????
{
????????printf(
"%d??",?A[i]);
????}


????printf(
"\n");

????
return?0;
}