
C语言
好运haoyun
这个作者很懒,什么都没留下…
展开
-
二维数组越界和初始化问题
二维数组越界问题#include <stdio.h>int main(int argc, char *argv[]) { int a[][2]={1,2,3,5,6}; for (int i=0;i<3;i++) { for (int j=0;j<2;j++) { if (a[i][j]=='\0') { continue; } printf("%d ",a[i][j]); } } printf("\n %d ",原创 2021-01-25 17:37:25 · 2553 阅读 · 0 评论 -
C语言 用函数改变指针指向 多测试用例举例 SwapPointer
C语言用函数改变指针指向#include <stdio.h>void SwapPointer(int **,int **);void Swap(int *a,int *b);void SwapP(int *a,int *b); int main(int argc, char *argv[]) { int a=1,b=2; int *a1=&a,*b1=&b; printf("原值 a:%d b:%d\n",a,b); printf("原值 a1:%d b1原创 2021-01-28 19:37:47 · 540 阅读 · 1 评论 -
不使库函数(abs)通过位运算实现取一个整数的绝对值
不使库函数(abs)通过位运算实现取一个整数的绝对值问题出自:2017年韩山师范学院本科插班生考试 第3题需要用到的知识点原码、补码、反码负数转2进制位运算2进制乘法(关系不大)解题代码:int myabs(int n){ return n * ((n>>31<<1) +1);}整型变量 n 右移31位 左移1位 +1 乘 n原码正数的原码就是它本身,符号位 为 0负数符号位为1,八位二进制举例:1000 1010 = (原创 2021-02-11 16:35:19 · 1061 阅读 · 0 评论 -
Eratosthenes集合筛选法求素数
Eratosthenes集合筛选法求素数算法思想和数因子,和数因子是从素数中产生的,最小的素数为2,m作为合数因子,从2开始,配合k+=m,删除合数因子的倍数,当m不断扩大时,如当m为5的时候,上一层的循环为4的时候,4已经被m为 2 的时候删除了,所以m走完素数2走素数3,跳过已经被删除的4直接走到5代码实现这里的实现是结合集合知识实现的,可以直接替换成数组实现,删除数组元素的SetDelete可以将数组元素设置为0,SetMember可以改成判定元素是否不为零..原创 2021-03-08 21:00:29 · 684 阅读 · 0 评论 -
最大公约数 C递归实现
#include <stdio.h>int gcd (int a,int b){ if(b==0)return a; return gcd(b,a%b);}int gcd1(int a,int b,int c){ return gcd(gcd(a,b),c);}int main(int argc, char *argv[]) { printf("%d\n",gcd(3, 6)); printf("%d",gcd1(3,6,9)); //三个数求最小公约数就多加一层 }原创 2021-03-10 15:46:44 · 355 阅读 · 0 评论 -
C实现 基数排序
#include <stdio.h>#include "stdlib.h"#define RADIX 10void RadisSort(int array[],int l,int r){ int pow=1,max=1; //申请临时数组b int * b = (int*)malloc(sizeof(int)*(r+1)); //找出max,max的位数决定需要进行几次的排序 //算法思路,先根据个位数排序,然后根据十位数排序,然后。。 //排序的次数根据原创 2021-03-13 14:35:05 · 278 阅读 · 0 评论 -
C语言实现 循环链表实现队列
C语言实现 循环链表实现队列#include <stdio.h>#include "stdlib.h"typedef struct queuenode{ int data; struct queuenode * next; }QueueNode;typedef struct { QueueNode * rear; }linkQueue;void insertNode(linkQueue *Q,int x){ QueueNode * p = malloc(s原创 2021-03-18 21:51:38 · 1401 阅读 · 0 评论