![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言编程练习
1100022702
这个作者很懒,什么都没留下…
展开
-
找出1~100之间的所有质数
#include int main() { printf("1\t2\t"); for (int i = 3; i <= 100; i += 2) { int j; for (j = 3; j < i; j += 2) { if (i%j == 0) break; } if (j >= i) printf("%d\t", i); } }原创 2015-01-02 17:05:18 · 2449 阅读 · 0 评论 -
实现strncpy
#include void strncpy(char *dst, char *src, int n) { if (!dst || !src) return; while (n-- > 0 && (*dst++ = *src++) != '\0') ; *dst = '\0'; } int main() { char src[64]; char dst[64]; spr原创 2015-01-04 17:49:04 · 319 阅读 · 0 评论 -
用迭代法计算斐波那契数
#include long fabonacci(int n) { long result; long pre_result; long pre_pre_result; result = pre_result = 1; while (n > 2) { n -= 1; pre_pre_result = pre_result; pre_result = result;原创 2015-01-05 13:52:14 · 3506 阅读 · 0 评论 -
反转字符串
#include void reverse_string(char *string) { char *dest = string; while (*dest++ != '\0') ; dest -= 2; while (string < dest) { char t = *string; *string++ = *dest; *dest-- = t; } }原创 2015-01-05 11:01:59 · 251 阅读 · 0 评论 -
反转unsigned的二进制位
#include unsigned int reverse_bits(unsigned int value) { unsigned int i; unsigned int result = 0; for (i = 1; i != 0; i <<= 1) { result <<= 1; if (value & 1) result |= 1; value >>= 1;原创 2015-01-04 20:12:09 · 292 阅读 · 0 评论 -
从一个字符串去除多余的空格
#include int is_blank(int ch) { return ch == ' ' || ch == '\t' || ch == '\r' || ch == '\n' || ch == '\v' || ch == '\f'; } void deblank(char *string) { char *src = string; char *dest = string++;原创 2015-01-04 16:58:29 · 779 阅读 · 0 评论 -
取一个字符串的子串
函数原型:int substr(char *dst, char *src, int start, int len); 从src开始位置向后偏移start个字符的位置开始,最多复制len个非空字符到dst的指定位置,dst必须以空字符结尾。函数返回存储于dst中的字符串长度。 #include int substr(char *dst, char *src, int start, int l原创 2015-01-04 17:35:03 · 773 阅读 · 0 评论 -
找出1000以内的所有完数
如果一个数恰好等于它的因子之和,则称该数为“完全数”。 #include #define N 1000 int main() { int sum; for (int k = 2; k <= N; k++) { sum = 0; for (int i = 1; i < k; i++) { if (k%i == 0) sum += i; } if (原创 2015-01-02 16:37:02 · 1125 阅读 · 0 评论 -
判断闰年
#include int main() { int leap_year = 0; int year; printf("input a year:\t"); scanf("%d", &year); if ((year%400) == 0) leap_year = 1; else if ((year%100) == 0) leap_year = 0; else if (原创 2015-01-02 16:22:50 · 319 阅读 · 0 评论 -
求两个整数的最大公约数和最小公倍数
#include int main() { int a, b, n1, n2, temp; printf("input first number:\t"); scanf("%d", &n1); printf("input second number:\t"); scanf("%d", &n2); if (n1 < n2) { temp = n1; n1 = n2;原创 2015-01-02 16:53:24 · 469 阅读 · 0 评论