|
|
|
发新文章 |
|
|
编写一函数实现数组的递归求和 #include <stdio.h>
#include "config.h"
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
int sum(int A[], size_t n)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif) ![](/Images/OutliningIndicators/ContractedBlock.gif) {
if (1 == n)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
return 1;
}
else
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
return sum(&A[n-1], n-1) + n;
}
}
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
int main(void)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif) ![](/Images/OutliningIndicators/ContractedBlock.gif) {
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) int A[] = { 1, 2, 3, 5, 9, 1};
![](/Images/OutliningIndicators/InBlock.gif)
printf("%d\n", sum(A, ARRAY_LENGTH(A)));
![](/Images/OutliningIndicators/InBlock.gif)
return 0;
}头文件config.h的内容如下: #ifndef CONFIG_H
#define CONFIG_H
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
#define ARRAY_LENGTH(x) sizeof(x)/sizeof(x[0])
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
#endif编写一函数实现str到long的转换 #include <stdio.h>
#include <string.h>
#include <assert.h>
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
long str2long(const char* str)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif) ![](/Images/OutliningIndicators/ContractedBlock.gif) {
long result = 0;
![](/Images/OutliningIndicators/InBlock.gif)
while ('\0' != *str)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
result = result * 10 + (*str - '0');
++str;
}
![](/Images/OutliningIndicators/InBlock.gif)
return result;
}
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
int main(void)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif) ![](/Images/OutliningIndicators/ContractedBlock.gif) {
char *str = "1234";
![](/Images/OutliningIndicators/InBlock.gif)
printf("\n%d\n", str2long(str));
![](/Images/OutliningIndicators/InBlock.gif)
return 0;
}上面的代码没有考虑负数^_^ 实现strcpy函数 char *mystrcpy(char *dst, const char *src)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif) ![](/Images/OutliningIndicators/ContractedBlock.gif) {
assert(NULL != dst && NULL != src);
while (*dst++ = *src++);
return dst;
}
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
int main(void)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif) ![](/Images/OutliningIndicators/ContractedBlock.gif) {
char *dst[20];
char *src = "test";
mystrcpy(dst, src);
![](/Images/OutliningIndicators/InBlock.gif)
puts(dst);
![](/Images/OutliningIndicators/InBlock.gif)
return 0;
}判断一个整数是否是回文 long symm(long n)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif) ![](/Images/OutliningIndicators/ContractedBlock.gif) {
long i, m;
m = 0;
i = n;
while (i)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
m = m * 10 + i % 10;
i /= 10;
}
return (n == m ? 1:0);
}实现Insertion sort #include <stdio.h>
#include <string.h>
![](/Images/OutliningIndicators/None.gif)
typedef int ElemType;
![](/Images/OutliningIndicators/None.gif)
void InsertionSort(ElemType A[], size_t n)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif) ![](/Images/OutliningIndicators/ContractedBlock.gif) {
int i;
int pass;
ElemType tmp;
![](/Images/OutliningIndicators/InBlock.gif)
for (pass = 1; pass < n; pass++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
tmp = A[pass];
for ( i = pass; i > 0 && A[i-1] > tmp; i--)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
A[i] = A[i-1];
}
A[i] = tmp;
}
}
![](/Images/OutliningIndicators/None.gif)
int main(void)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif) ![](/Images/OutliningIndicators/ContractedBlock.gif) {
int i;
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) ElemType A[] = {1, 2, 4, 8, 6, 98, 11, 25, 44, 35};
![](/Images/OutliningIndicators/InBlock.gif)
puts("Before sort:");
for(i = 0; i< sizeof(A)/sizeof(ElemType); i++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
printf("%d ", A[i]);
}
printf("\n");
![](/Images/OutliningIndicators/InBlock.gif)
InsertionSort(A, sizeof(A)/sizeof(ElemType));
![](/Images/OutliningIndicators/InBlock.gif)
puts("After sort:");
for(i = 0; i< sizeof(A)/sizeof(ElemType); i++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
printf("%d ", A[i]);
}
![](/Images/OutliningIndicators/InBlock.gif)
printf("\n");
![](/Images/OutliningIndicators/InBlock.gif)
return 0;
}
|