C语言图解题
入木
抬头看 天空是蓝色的
展开
-
比赛预测结果
int main(){ int a = 0;int b = 0;int c = 0;int d = 0;int e = 0; for (a = 1; a <= 5; a++) { for (b = 1; b <= 5; b++) { for (c = 1; c <= 5; c++) { for (d = 1; d <= 5; d++) { for (e = 1; e <= 5; e++) { if (.原创 2021-11-14 10:14:36 · 318 阅读 · 0 评论 -
杨氏矩阵。
#include<stdio.h>int main(){ int a[3][3]={1,2,3,4,5,6,7,8,9}; int k=0; printf("请输入一个数字:"); scanf("%d", &k); int left = 0; int right = 2; while (left >= 0 && left <= 2 && right >= 0 && right <= 2){ .原创 2021-11-14 10:11:16 · 498 阅读 · 0 评论 -
调整数组使奇数全部都位于偶数前面
#include<stdio.h>#define n 5//void print(int a[])//{// int i=0;// for (i = 0; i < n; i++)// printf("%d ", a[i]);//}void move(int a[]){ int left = 0; int right = n-1; while (left < right) { while (a[left] % 2 != 0) left++; w原创 2021-11-14 10:05:09 · 843 阅读 · 0 评论 -
字符串逆序
#include<string.h>#include<stdio.h>#include<math.h>void reverse(char *a){ int b = strlen(a); int left = 0; int right = b - 1; while (left < right) { char t = a[left]; a[left] = a[right]; a[right] = t; left++; right-原创 2021-11-14 09:59:33 · 902 阅读 · 0 评论 -
判断是不是闰年
1000-2000之间谁是闰年int main(){ int a = 0; int i = 0; for (i = 1000; i <= 2000; i++) { if ((i % 4 == 0 && i % 100 != 0) || (i % 400 == 0)) { printf("%d ", i) ; } } return 0;}函数判断一个年份是不是闰年int year(int i){ if ((i % 4 == 0原创 2021-09-07 19:07:10 · 340 阅读 · 0 评论 -
猜数字(随机数)小游戏 ---游戏
void menu(){ printf("##########################\n"); printf("#######1、开始游戏########\n"); printf("#######2、结束游戏########\n"); printf("##########################\n");}void game(){ int ret = rand() % 100 + 1;//随机生成需要我们猜的数字,和srand搭配 int guess = 0; whi原创 2021-09-07 16:38:52 · 157 阅读 · 0 评论 -
动态内存开辟+柔性数组- -经典题!!
推荐:https://cools hell.cn/articles/11377.htmltest运行完是什么结果1void GetMemory(char* p){ p = (char*)malloc(100);}void Test(void){ char* str = NULL; GetMemory(str); strcpy(str, "hello world"); printf(str);}int main(){ Test(); return 0;}运行不出来原创 2021-07-22 17:00:31 · 99 阅读 · 0 评论 -
qsort--模拟实现对各种类型数据的排序
qsort模拟实现各种排序–不知道类型–运用冒泡排序#include<stdio.h>#include<string.h>struct Stu{ char name[20]; int age;};int cmp_int(const void* e1, const void* e2)//整型{ return *(int*)e1 - *(int*)e2;}int sort_by_age(const void* e1, const void* e2)//整型(结构体原创 2021-06-24 20:32:46 · 94 阅读 · 0 评论 -
strlen- -模拟实现
计数器方法int my_strlen(char* str){ int count = 0; while (*str != '\0')//指向\0的时候结束 { count++; str++;//边++边指针下一个字符 } return count;}int main(){ int a[20]; printf("输入一组字符串:"); scanf("%s", a); int len = my_strlen(a);//传过去的是首元素 printf("%d\n", len)原创 2021-06-24 19:12:41 · 52 阅读 · 0 评论 -
打印图形- -杨辉三角
打印图形- -杨辉三角第一列都是1i==j的时候也都是1#include<stdio.h>#define n 4int main(){ int a[n][n] = { 0 }; int i = 0; int j = 0; for (i = 1; i <= n; i++) { for (j = 1; j <= i; j++) { if (j == 1) a[i][j] = 1; else if (i == j) a[i]原创 2021-06-24 18:03:43 · 178 阅读 · 0 评论 -
打印的图形- - 菱形
打印的图形- - 菱形#include<stdio.h>int main(){ int k = 0; printf("请输入k:"); scanf("%d", &k); int i = 0, j = 0; for (i = 1; i <=k; i++) { for (j = 1; j <= k - i; j++) printf(" "); for (j = 1; j <= 2 * i - 1; j++) printf("*");原创 2021-06-24 18:02:37 · 108 阅读 · 0 评论 -
打印- -某个字符构成的三角符金字塔
三角符金字塔#include<stdio.h>int main(){ char a='0'; scanf("%c", &a); int i = 0; int j = 0; for (i = 1; i < 6; i++) { for (j = 1; j <= 5-i; j++) printf(" "); for (j = 1; j <= i; j++) { printf("%c",a); printf(" "); }原创 2021-06-24 18:01:41 · 155 阅读 · 0 评论 -
打印- -乘法口诀表
目录冒泡排序数组操作打印图形- -菱形打印图形- - 杨辉三角打印- -乘法口诀表冒泡排序有n个数字要进行n-1轮排序每一轮排序都是两两比较之后将最大的那个数字放到最后#include<stdio.h>#define n 5int main(){ int a[n]; int i = 0; int j = 0; int t; printf("输入数组a:"); for (i = 0; i < n;i++) scanf("%d",&a[i]);/原创 2021-06-19 17:20:57 · 138 阅读 · 0 评论 -
数组- -打印、逆序、初始化
数组- -打印、逆序、初始化创建一个整形数组,完成对数组的操作实现函数init() 初始化数组为全0实现print() 打印数组的每个元素实现reverse() 函数完成数组元素的逆置。#include<stdio.h>#define n 5void init(int a[]){ int i = 0; for (i = 0; i < n; i++) { a[i] = 0; }}void print(int a[]){ int i = 0; fo原创 2021-06-24 18:00:00 · 114 阅读 · 0 评论 -
冒泡排序
冒泡排序有n个数字要进行n-1轮排序每一轮排序都是两两比较之后将最大的那个数字放到最后#include<stdio.h>#define n 5int main(){ int a[n]; int i = 0; int j = 0; int t; printf("输入数组a:"); for (i = 0; i < n;i++) scanf("%d",&a[i]);//传址调用所以要加& for (i = 0; i < n-1;i++)原创 2021-06-24 17:57:51 · 60 阅读 · 0 评论 -
求素数的方法
方法1#include"math.h"int main(){ int i = 0; int j = 0; for (i = 100; i <= 200; i++) { for (j = 2; j <= sqrt(i);j++) { if (i%j == 0) { break; } } if (j > sqrt(i)) { printf("%d ", i); } } return 0;}原创 2021-09-07 17:19:51 · 111 阅读 · 0 评论 -
二分查找两种实现方法(常规+递归)--查找
方法1int main(){ int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int sz = sizeof(a) / sizeof(a[0]); int k = 7; int low = 0; int high = sz - 1; while (low <=high) { int mid = (low + high) / 2; if (a[mid]>k) { high = mid - 1; }原创 2021-09-07 15:44:02 · 99 阅读 · 0 评论 -
查找数字的下标--二分法
在一些查找中,循环的时间复杂度会比较大,所以用二分法时间复杂度会小一些,要看题目要求int main(){ int arr[] = { 1,2,3,4,5,6,7,8,9,10 }; int k = 7;//要查找的数字 //在arr这个有序的数组中查找k(7)的值 int sz = sizeof(arr) / sizeof(arr[0]);//数组的元素个数 int left = 0; int right = sz-1; while (left<=right) { int.原创 2021-10-08 16:36:25 · 224 阅读 · 0 评论 -
求两个数的最小公倍数
最小公倍数方法1:最小公倍数=两数成绩/最大公约数求最大公约数的方法:[https://blog.csdn.net/Ds19415169988/article/details/118190361]#include<stdio.h>int main(){ int a = 0; int b = 0; int k = 0; printf("请输入两个不为0的数:"); scanf("%d%d", &a, &b); k = a*b; while (b!= 0)原创 2021-06-24 17:26:52 · 200 阅读 · 0 评论 -
求两个数的最大公约数
最大公约数方法1:先让a>b,然后再从b开始递减找第一个能被a和b整除的数为最大公约数#include<stdio.h>int main(){ int a = 0; int b = 0; printf("请输入两个数:"); scanf("%d%d", &a, &b); int i = 0; if (a < b) { int t = a; a = b; b = t; } for (i = b; i>0; i--) {原创 2021-06-24 16:53:52 · 113 阅读 · 0 评论 -
打印1-100之间所有3的倍数的数字
写一个代码打印1-100之间所有3的倍数的数字打印数字的倍数- -就是用一个数除于那个数字的余数看是否为0#include<stdio.h>int main(){ int i = 0; for (i = 1; i < 100; i++) { if (i % 3 == 0) printf("%d ", i); //else // continue; } return 0;}...原创 2021-06-24 15:53:24 · 1245 阅读 · 0 评论 -
计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果
计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果int main(){ float sum = 0.0; int a = 1; int i = 0; int flag = 1; for (i = 1; i <= 100; i++) { sum = sum +flag*(1.0 / i); flag = -flag; } printf("%f", sum); return 0;}...原创 2021-09-06 20:09:27 · 241 阅读 · 0 评论 -
三个数从大到小输出
三个数从大到小输出方法1两对两两比较求出较大的那个然后再用两个再比较#include<stdio.h>int main(){int a,b,c,t;printf("请输入三个整数:\n");scanf("%d\t%d\t%d", &a, &b, &c);if (a > b){t = a;a = b;b = t;}if (a > c){t = a;a = c;c = t;}if (b > c){t = b;原创 2021-06-22 21:10:55 · 139 阅读 · 0 评论 -
找出10个数中最大的那个数
int main(){ int i = 0; int a[10],max; for (i = 0; i < 10; i++) scanf("%d", &a[i]); max = a[0]; for (i = 0; i < 10; i++) { if (a[i]>max) max = a[i]; } printf("%d", max); }原创 2021-09-06 22:29:10 · 371 阅读 · 0 评论 -
计算出1到 100 的所有整数中出现多少个数字9
目录1写代码将三个整数数按从大到小输出#include<stdio.h>int main(){int a,b,c,t;printf("请输入三个整数:\n");scanf("%d\t%d\t%d", &a, &b, &c);if (a > b){t = a;a = b;b = t;}if (a > c){t = a;a = c;c = t;}if (b > c){t = b;b = c;c = t;原创 2021-06-19 10:53:25 · 207 阅读 · 0 评论 -
Sn=a+aa+aaa+aaaa+aaaaa的前5项之和--图解
//求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:2 + 22 + 222 + 2222 + 22222#include<stdio.h>int main(){ int n, a; int b=10; int sum=0; int c = 0; printf("请输入n,a:"); scanf("%d%d", &n,&a); int i; printf("%d", a); sum = a; for (i原创 2021-05-31 21:10:26 · 274 阅读 · 0 评论 -
求出0~100000之间的所有“水仙花数”并输出--图解
求出0~100000之间的所有“水仙花数”并输出。//“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,//如:153=1 ^ 3+5 ^ 3+3 ^ 3,则153是一个“水仙花数”。#include<math.h>int main(){ int i; for (i = 0; i < 10000; i++) { int n=1; int t = i; //1. 计算i的位数 - n while (t / 10) { n++;原创 2021-05-31 21:08:49 · 918 阅读 · 0 评论 -
凶手就是你
谁是凶手日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词:A说:不是我。B说:是C。C说:是D。D说:C在胡说已知3个人说了真话,1个人说的是假话。现在请根据这些信息,写一个程序来确定到底谁是凶手#include<stdio.h>int main(){ char killer = 0; for (killer = 'A'; killer <= 'D'; killer++) { if ((killer != '原创 2021-06-19 16:59:10 · 144 阅读 · 0 评论 -
这个夏天一起虚度时光,一起喝汽水!!
喝汽水问题喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水(编程实现)。#include<stdio.h>int main(){ int n=0; printf("请输入拿多少钱买水n:"); scanf("%d", &n); int sum = n; while (n > 1) { sum = sum + n / 2; n = n / 2 + n % 2; } printf("一共能喝到多少汽水:"); printf(原创 2021-06-19 16:38:01 · 89 阅读 · 0 评论 -
指针经典题-往死里学指针5--图解
指针、输出int main(){int main(){ int a[5] = { 1, 2, 3, 4, 5 }; int* ptr = (int*)(&a + 1); printf("%d,%d", *(a + 1), *(ptr - 1)); return 0;} return 0;}解析:(int*)(&a + 1)-&a为int(*)【5】类型,加1还是这个类型,所以强制转换为int*,这样他就是指针了*(a+1)中,a原创 2021-06-04 16:45:39 · 244 阅读 · 0 评论 -
sizeof、 strlen的打印-往死里学指针4
1、sizeof(数组名)- - -数组名表示整个数组,计算的是整个数组的大小&数组名 - - -数组名表示整个数组,取出的是整个数组的地址除此之外:所有的数组名都是数组首元素的地址 sizeof可能进行的运算: 计算地址的大小- -4/8 计算整个数组大小:假如为int ,整型字节4乘于4个元素 1sizeof(a)- -整个数组大小 4*4=16 2不是上述两种情况,a就是数组名就是首元素地址- -4/8 3sizeof(* a)- - -不是原创 2021-06-03 18:37:35 · 538 阅读 · 1 评论 -
指针相关题--图解!!!!
59文章1、写一个函数打印arr数组的内容,不使用数组下标,使用指针。int main(){ int arr[] = { 1,2,3,4,5,6,7,8,9,10 }; //0 1 2 3 4 5 6 7 8 9 int sz = sizeof(arr) / sizeof(arr[0]); //方法1 int* p = arr; int* pend = arr + sz - 1; int i = 0; while (p<=pend) { printf("%d ", *p原创 2021-05-27 19:43:56 · 51 阅读 · 0 评论 -
原反补码的转换
知识点正整数:原码、反码、补码相同负整数:原码、反码、补码要进行计算1、整数在内存中存储的就是补码通过内存看a的地址 ,把内存调为4列,即看到4个字节, 而这四个字节为什么是这样?先根据数值写出32二进制- - -原码1000 0000 0000 0000 0000 0000 1100原码符号位不变,其他位取反----反码1111 1111 1111 1111 1111 1111 0011反码+1-- – -- -补码1111 1111 1111 1111 1111原创 2021-05-25 16:50:43 · 2151 阅读 · 0 评论 -
操作符经典题图解
57文章1、求两个数二进制中不同位的个数-编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?输入例子:1999 2299 输出例子:7方法1::#include<stdio.h>int main(){ int a = 0, b = 0; int c = 0; int k=0; printf("输入两个整数:"); scanf("%d%d", &a, &b); c = a^b; while (c !=0)原创 2021-05-27 11:53:41 · 61 阅读 · 0 评论 -
函数递归常用题- -图解- -C语言基础知识点5
函数递归–很容易导致栈溢出1、接受一个整形值(无符号),按照顺序打印它的每一位如:输入:1234 输出 1 2 3 4void print(unsigned int n){ if (n > 9) { print(n / 10); } printf("%d ", n % 10);}int main(){ unsigned int num = 0; scanf_s("%u", &num);//1234 print(num);//printf函数可以打印参数部分数字原创 2021-04-25 23:31:15 · 158 阅读 · 0 评论 -
函数常用题- -c语言基础知识点4
1、memset初始化函数2max函数3 解引用4两数交换传址调用原创 2021-04-25 22:48:59 · 98 阅读 · 0 评论