![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言学习笔记
润松3344
这个作者很懒,什么都没留下…
展开
-
C语言strtok函数的用法
strtok是字符串切割函数定义参数一:待切割字符串参数二:分隔符集合首次调用时传递参数为:strtok(str,seps);之后再次调用时传递参数为:strtok(NULL,seps); 若可以切割,函数返回值为字符指针,各段切割好的字符串 若分割完毕,函数返回值为空指针举例用“.“或者”@”切割字符串"litianyi@hust.edu@cn"得到itianyi hust edu cn#define _CRT_SECURE_NO_WARNINGS 1原创 2021-04-10 12:44:41 · 5587 阅读 · 0 评论 -
计算n的k次方
#include<stdio.h>double pow(int n,int k){ if(k>=1) return n * pow(n, k - 1); if (k == 0) return 1; if (k < 0) return 1.0 / pow(n, -k); }int main(){ int n = 0; int k = 0; scanf("%d %d", &n,&k); double sum = pow(n, k原创 2020-08-13 12:17:20 · 607 阅读 · 0 评论 -
计算整数中各位数字之和
#include<stdio.h>int digit_sum(int num){ int temp = num % 10; if (num > 9) return temp + digit_sum(num / 10); else return temp;}int main(){ int num = 0; scanf("%d", &num); int sum=digit_sum(num); printf("%d\n", sum); return 0;原创 2020-08-13 11:18:07 · 2685 阅读 · 0 评论 -
C语言逆序字符串(递归实现)
算法思想以字符串“abcdef”为例1.将a保存到temp中2.将f放到a的位置3.f处填写‘\0’4.计算bcde的长度5.如果bcde的长度大于1,则逆序6.将a放到f的位置#include <stdio.h>#include<string.h>int my_strlen(char* str){ char* start = str; char* end = str; while (*end != '\0') { end++; } return原创 2020-08-13 11:12:09 · 594 阅读 · 0 评论 -
打印一个整数二进制表示中所有的奇数位和偶数位
#include<stdio.h>void my_print(int n){ int i = 0; printf(" 打印奇数位\n"); for (i = 30; i >=0; i = i - 2) { printf("%d ", (n >> i)&1); } printf("\n"); printf("打印偶数位\n"); for (i = 31; i >=1; i = i - 2) { printf("%d ", (n &.原创 2020-08-12 19:07:52 · 281 阅读 · 0 评论 -
统计一个数的补码中二进制中1的个数
方法一:#include<stdio.h>int count_one_bit(int n){ int count = 0; while (n) { if (n % 2 == 1) { count++; } n = n / 2; } return count;}int main(){ int num = 0; int count = 0; scanf("%d", &num); count=count_one_bit(num); pr原创 2020-08-12 18:54:52 · 162 阅读 · 0 评论 -
C语言交换两个数(不创建临时变量)
方法一.加减法#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int main(){ int a = 10; int b = 20; //加减法 a = a + b; b = a - b;//b=原来的a a = a - b;//a=原来的b //缺点:若a、b为较大的数会溢出 printf("%d %d", a, b); return 0;}二.异或法#define _CRT_SECURE_NO_WARNIN原创 2020-08-11 15:11:07 · 158 阅读 · 0 评论 -
C语言冒泡排序
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>void bubble_sort(int a[10], int n){ for (int i = 0; i < n-1; i++) { int flag = 1; for (int j = 0; j < n - i - 1; j++) { if (a[j] > a[j + 1]) { int temp = a[j]; a[j]原创 2020-08-10 19:05:00 · 109 阅读 · 0 评论 -
在屏幕上将1234逐位打印出来1,2,3,4
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>void my_printf(int temp){ if (temp > 9) my_printf(temp / 10); printf("%d\n", (temp % 10));}int main(){ int num = 0; printf("请输入一个数字:\n"); scanf("%d", &num); my_printf(num); ret原创 2020-08-10 16:06:44 · 298 阅读 · 0 评论 -
C语言计算字符串的长度
一。循环实现#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int my_strlen(char *pstr){ int num = 0; while (*pstr != '\0') { num++; pstr++; } return num;}int main(){ int count = 0; char str[100] = { 0 }; printf("请输入一个字符串"); scanf("%s"原创 2020-08-10 15:41:08 · 757 阅读 · 0 评论 -
C语言求n的阶乘
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int fact(int k){ if (k > 1) return k * fact(k - 1); else return 1;}int main(){ int n = 0; int num = 0; printf("请输入一个正整数n,求n!"); scanf("%d", &n); num=fact(n); printf("%d", num原创 2020-08-10 09:54:57 · 416 阅读 · 0 评论 -
C语言求斐波那契数列
一.递归算法#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int fib(int k){ if (k <= 2) return 1; else return fib(k - 1) + fib(k - 2);}int main(){ int n = 0; int res = 0; printf("求输入斐波那契数列的阶数"); scanf("%d", &n); res=fib(n); prin原创 2020-08-10 09:48:30 · 1200 阅读 · 0 评论 -
判断闰年(函数实现)
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<math.h>int is_leap_year(int x){ if ((x % 4 == 0 && x % 100 != 0) || x % 400 == 0) return 1; else return 0;}int main(){ int year = 0; for (year = 1000; year <=原创 2020-08-08 15:40:36 · 328 阅读 · 0 评论 -
打印100-200之间的质数(函数实现)
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<math.h>int is_prime(int x){ for (int j = 2; j <= sqrt(x); j++) { if (x % j == 0) return 0; } return 1;}int main(){ int i = 0; for (i = 101; i < 200; i=i+2) {原创 2020-08-08 15:31:05 · 709 阅读 · 0 评论 -
C语言函数实现交换两个整型变量
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<string.h>void Swap(int* pa, int* pb){ int temp = 0; temp = *pb; *pb = *pa; *pa = temp;}int main(){ int a = 20; int b = 30; printf("交换前a=%d b=%d\n", a, b); Swap(&a,&原创 2020-08-08 14:58:37 · 1188 阅读 · 0 评论 -
C语言猜数字游戏(数字范围1-100)
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>#include<time.h>void menu(){ printf("******************************\n"); printf("***** 0.exit 1.play *****\n"); printf("******************************\n");原创 2020-08-08 09:58:32 · 2903 阅读 · 0 评论 -
C语言打印九九乘法口诀
一.代码#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int main(){ int i = 0; int j = 0; for (i = 1; i < 10; i++) { for (j = 1; j <= i; j++) { printf("%d*%d=%-2d", i, j, i * j); } printf("\n"); } return 0;}二.运行结果...原创 2020-08-07 22:58:21 · 171 阅读 · 3 评论 -
C语言求十个数中最大值
一.代码#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int main(){ int arr[] = { 1,2,3,4,5,63,7,8,9,11 }; int sz = sizeof(arr) / sizeof(arr[0]); int max = arr[0]; int i = 0; for (i = 1; i < 10; i++) { if (arr[i] > max) max = arr[i原创 2020-08-07 22:53:28 · 852 阅读 · 0 评论 -
C语言分数求和
eg.1-1/2+1/3-1/4+1/5-1/6+…+1/99-1/100#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int main(){ int i = 0; double sum = 0.0; int flag = 1; for (i = 1; i <= 100; i++) { sum += flag*1.0 / i; flag = -flag; } printf("%lf\n", sum);原创 2020-08-07 22:45:50 · 8130 阅读 · 0 评论 -
求1到100中9的个数
个位9的数目+十位9的数目#include<stdio.h>int main(){ int num = 0; int count = 0; for (num = 1; num <= 100; num++) { if (num % 10 == 9) //个位9的个数 count++; if (num / 10 == 9)//十位9的个数 count++; } printf("%d", count); return 0;}...原创 2020-08-06 19:43:53 · 195 阅读 · 0 评论 -
打印100到200之间的素数
#include<stdio.h>int main(){ int num; int i; int count = 0; for (num = 100; num <= 200; num++) { for (i = 2; i <= num / 2; i++) { if (num % i == 0) { break; } } if (i > num / 2) { printf("%d ", num);原创 2020-08-06 18:55:53 · 97 阅读 · 0 评论 -
打印1000到2000之间的闰年
#include <stdio.h>int main(){ int year; int count = 0; for (year = 1000; year <= 2000; year++) { if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) { printf("%d ", year); count++; } else continue; } prin原创 2020-08-06 18:47:33 · 153 阅读 · 0 评论 -
求两个数的最大公约数
一.基础款#include <stdio.h>int main(){ int m = 0; int n = 0; int i = 0; int temp = 0; int min = 0; scanf_s("%d %d", &m, &n); if (m > n) min = n; else min = m; for (i = 1; i <= min / 2; i++) { if (m % i == 0 && n %原创 2020-08-06 14:27:56 · 183 阅读 · 0 评论 -
折半查找法(二分查找法)
一.举例二.算法时间复杂度假设一共有n个元素第一次折半元素个数变为n/2;第二次折半元素个数变为n/4;第三次折半元素个数变为n/8;。。。。。第k次折半元素个数变为n/2^k;。。。。。假设k次找到,即为n/2^k=1;k=log2(n);三.函数实现#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int binsearch(int a[], int x, int n){ int high = n - 1原创 2020-08-05 14:57:52 · 209 阅读 · 0 评论