C语言
WYSCODER
一只努力学编程的菜鸟
展开
-
Linux 僵尸进程
僵尸进程1.什么是僵尸进程一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他,那么他将变成一个僵尸进程。当用ps命令观察进程的执行状态时,看到这些进程的状态栏为defunct。如果该进程的父进程先结束,那么该进程就不会变成僵尸进程。因为每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程,看看有没有哪个进程是刚刚结束的这个进程的子进程,如果是的话,就由Init进程来接管他,成为他的父进程,从而保证每个进程都会有一个父进程。而Init进程会自动wait其子进程,因此被Ini原创 2021-10-28 18:56:15 · 380 阅读 · 0 评论 -
Linux 进程复制 fork2
进程复制fork1. fork() || fork()编写以下代码,A打印几次? 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<unistd.h> 4 int main() 5 { 6 fork() || fork(); 7 printf("A\n"); 8 9 exit(0); 10 }图解:运行结果:wys@DESKTOP-2OU3HR原创 2021-10-27 23:03:56 · 207 阅读 · 0 评论 -
Linux 复制进程fork1
复制进程fork1.fork方法用man命令查看fork方法wys@DESKTOP-2OU3HRV:~/mycode/day08$ man forkpid_t fork(void);函数返回类型 pid_t 实质是 int 类型fork 函数会新生成一个进程,调用 fork 函数的进程为父进程,新生成的进程为子进程。在父进程中返回子进程的 pid,在子进程中返回 0,失败返回-1。编写以下程序: 1 #include<stdio.h> 2 #include<st原创 2021-10-27 20:35:15 · 239 阅读 · 0 评论 -
Linux 主函数参数介绍
主函数参数介绍int main( int argc, char argv[], char envp[])(1) argc 参数个数(2) argv 参数内容(3) envp 环境变量**1.编写以下代码,打印参数个数,和参数内容 1 #include<stdio.h> 2 #include<stdlib.h> 3 //参数个数 参数内容 环境变量 4 int main(int argc,char* argv[],char*原创 2021-10-27 19:37:37 · 265 阅读 · 0 评论 -
Linux printf 函数输出问题
printf 函数输出问题printf 函数并不会直接将数据输出到屏幕,而是先放到缓冲区中,只有以下三种情况满足,才会输出到屏幕。1) 缓冲区满2) 强制刷新缓冲区 fflush3) 程序结束时1.编写以下程序 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<unistd.h> 4 int main() 5 { 6 printf("hello world\n"); 7原创 2021-10-27 17:26:35 · 650 阅读 · 0 评论 -
2021-07-22_交换两个数的大小
交换两个数1.创建第3个变量#include<stdio.h>int main(){ int a = 3; int b = 5; int temp = 0; printf("交换前:a=%d b=%d\n", a, b); temp = a; a = b; b = temp; printf("交换后:a=%d b=%d\n", a, b); return 0;}运行结果:2.加减的方法#include<stdio.h>int main(){原创 2021-07-22 12:33:10 · 139 阅读 · 0 评论 -
C语言-------冒泡排序
冒泡排序例如数组int arr= {10,9, 8,7, 6,5, 4,3, 2,1}第一趟 ,用数组的第一个数与第二个数作比较,当大于第二个数时,两个数交换,然后第二个数与第三个数做比较,如果大于第三个数,两个数交换…最后得到9 8 7 6 5 4 3 2 1 10 比较9次第二趟,依次比较,最后得到8 7 6 5 4 3 2 1 9 10 比较8次第三趟,依次比较,最后得到7 6 5 4 3 2 1 8 9 10 比较7次…第九趟,得到1 2 3 4 5 6 7 8 9原创 2021-09-06 16:16:16 · 222 阅读 · 0 评论 -
C语言-------将字符串反向排列
将字符串反向排列#include<stdio.h>int my_strlen(char* str){ int count = 0; while (*str != '\0') { count++; str++; } return count;}void reverse_string(char* str){ int left = 0; int right = my_strlen(str) - 1; while (left < right) { cha原创 2021-09-06 11:07:03 · 523 阅读 · 0 评论 -
C语言--------求第n个斐波那契数
求第n个斐波那契数斐波那契数第一个第二个数都是1,从第三个开始,每一个数都是前两个数之和,如下1 1 2 3 5 8 13 21 34 55 89 …方法一(递归):#include<stdio.h>int fib(int n){ if (n <= 2) { return 1; } else { return fib(n - 1) + fib(n - 2); }}int main(){ int n = 0; printf("请输入你要求第几个斐波原创 2021-09-06 10:33:28 · 356 阅读 · 0 评论 -
C语言-----求n的阶乘
求n的阶乘方法一#include<stdio.h>int fun(int n){ int ret = 1; int i = 0; for (i = 1; i <= n; i++) { ret *= i; } return ret;}int main(){ int n = 0; scanf("%d", &n); printf("%d",fun(n)); return 0;}方法二(递归)#include<stdio.h>原创 2021-09-06 10:22:11 · 350 阅读 · 2 评论 -
C语言------求字符串的长度,编写函数不允许创建临时变量
求字符串的长度,编写函数不允许创建临时变量方法一#include<stdio.h>//求字符串的长度,编写函数不允许创建临时变量int my_strlen(char* str){ int count = 0; while (*str != '\0') { count++; str++; } return count;}int main(){ char arr[] = "sheng"; int ret = my_strlen(arr); printf("%d原创 2021-09-06 09:56:55 · 201 阅读 · 5 评论 -
C语言-----依次输出一个数的各位(递归)
依次输出一个数的各位代码如下:#include<stdio.h>void print(int n){ if (n > 9) { print(n / 10); } printf("%d ", n % 10);}int main(){ int num = 0; scanf("%d", &num); print(num); return 0;}结果演示原创 2021-09-06 09:32:39 · 994 阅读 · 1 评论 -
C语言-----找出100~200之间的素数
找出100~200之间的素数代码如下#include<stdio.h>#include<math.h>int is_prime(int n){ int j = 0; //for (j = 2; j <= n - 1; j++) for(j=2;j<=sqrt(n);j++) { if (n % j == 0) { return 0; } } return 1;}int main(){ int i = 0; int coun原创 2021-09-06 09:06:40 · 461 阅读 · 0 评论 -
C语言------求n的k次方
求n的k次方代码部分#include<stdio.h>double mypow(int n, int k){ if (k == 0) { return 1; } else if (k > 0) { return n * mypow(n, k - 1); } else //k<0时 { return 1.0 / mypow(n, -k); }}int main(){ int n = 0; int k = 0; scanf("%d %d"原创 2021-09-06 08:41:29 · 411 阅读 · 0 评论 -
C语言-----输出一个数的各数之和(递归)
输入一个数字,求出其各数之和代码如下#include<stdio.h>//求一个数的各数之和int DiGitSum(int n){ if (n > 9) { return DiGitSum(n / 10) + n % 10; } else { return n; }}int main(){ int n = 0; printf("请输入一个数:\n"); scanf("%d", &n); int ret = DiGitSum(n);原创 2021-09-06 08:18:14 · 1287 阅读 · 0 评论 -
C语言-----猜数字
猜数字随机生成1 到 100之间的数字,用户输入要猜的数字,如果猜大了,屏幕上输出猜大了,如果猜小了,屏幕上输出猜小了,直到猜对了,屏幕上打印输出恭喜您,猜对了!程序原码#include<stdio.h>#include<stdlib.h>#include<time.h>void game(){ int guess = 0; int ret = rand()%100+1; printf("请输入你要猜的数字\n"); while (1) { s原创 2021-09-05 15:17:56 · 203 阅读 · 0 评论 -
2021_9_1-------求1!+ 2!+ 3!+ 4!+ 5!的和
C语言--------求1!+ 2!+ 3!+ 4!+ 5!的和方法一:#include<stdio.h>int main(){ int sum = 0; int n = 0; int i = 0; for (n = 1; n <=5; n++) { //求n的阶乘 int ret = 1;//注意:将ret每次置为1 for (i = 1; i <= n; i++) { ret *= i; } sum +=原创 2021-09-01 17:22:33 · 1698 阅读 · 0 评论 -
2021-09-01_ C语言--------在一个有顺序的数组中查找某个值n(二分法)
C语言--------在一个有顺序的数组中查找某个值n(二分法)假设有一个数组int arr[] = { 1,2,3,4,5,6,7,8,9,10 };我们要找出其中数字7的下标。#include<stdio.h>int main(){ //在一个有顺序的数组中查找某个值n int arr[] = { 1,2,3,4,5,6,7,8,9,10 }; int sz = sizeof(arr) / sizeof(arr[0]);//求数组长度 int k = 7;//查找的特定值原创 2021-09-01 16:17:35 · 162 阅读 · 0 评论 -
2021-09-01_C语言--------编写代码,演示多个字符从中间移动,向中间汇聚
C语言--------编写代码,演示多个字符从中间移动,向中间汇聚效果演示:welcome to beijing!!!w*******************!we*****************!!wel***************!!!…welcome to beijing!!!#include<stdio.h>#include<string.h>#include<windows.h>int main(){ char arr1[] = "原创 2021-09-01 15:23:22 · 101 阅读 · 0 评论 -
2021-07-22_找出只出现一次的数
找出只出现一次的数给定一个非空整型数组,除了某个元素只出现一次以外,其余每个元素均出现两次,找出那个只出现一次的元素。样例:int a[]={1,2,3,4,5,1,2,3,4}该数组中5只出现一次,其他数字都是成对的,要找出5;1、简单粗暴的方法----统计元素在数组中出现的次数;#include<stdio.h>int main(){ int arr[] = { 1,2,3,4,5,1,2,3,4}; int i = 0; int sz = sizeof(arr) /原创 2021-07-22 18:43:19 · 152 阅读 · 0 评论