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 · 2460 阅读 · 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 · 324 阅读 · 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 · 3511 阅读 · 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 · 263 阅读 · 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 · 301 阅读 · 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 · 790 阅读 · 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 · 784 阅读 · 0 评论 -
找出1000以内的所有完数
如果一个数恰好等于它的因子之和,则称该数为“完全数”。#include #define N 1000int 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 · 1134 阅读 · 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 · 324 阅读 · 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 · 477 阅读 · 0 评论