|
|
|
发新文章 |
|
|
编写一函数实现数组的递归求和 #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的内容如下: #ifndef CONFIG_H #define CONFIG_H
#define ARRAY_LENGTH(x) sizeof(x)/sizeof(x[0])
#endif 编写一函数实现str到long的转换 #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; } 上面的代码没有考虑负数^_^ 实现strcpy函数 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; } 判断一个整数是否是回文 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); } 实现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; }
|