C语言基础
脆皮瞎
这个作者很懒,什么都没留下…
展开
-
算法------
系列文章目录文章目录系列文章目录一1.反转字符串一1.反转字符串char* solve(char* str ) { // write code here char *f, *r; char temp; f = r = str; if(*str == ' ') return str; while(*r != '\0') r++; r--; while(r - f > 0){ tem原创 2022-01-02 16:43:07 · 323 阅读 · 0 评论 -
【C】日常打卡
系列文章目录文章目录系列文章目录前言1.约瑟夫问题2.最小覆盖子串前言1.约瑟夫问题有n人(编号分别为1到n号)围城一圈,从第s人开始报数,报到第m的人出列,然后从出列的下一人重新开始报数,报到第m的人又出列,。。。如此重复知道第n-1全部出列,只剩最后一个人为止。求剩下的最后一任是谁?输入一行,三个整数n,m,s,(0<=n,m, s<=1000)意义如上。输出一行,一个正整数,表示最后剩下的人的编号。输入样例8 3 1输出7要求从第s个数开始,数m个出列,第s个不出列。原创 2021-12-27 17:25:17 · 254 阅读 · 0 评论 -
c练习01
01设有如下定义成的链表,则值为6的表达式是()struct st{int data; struct st *next;} a[3] = {5, &a[1], 7, &a[2], 9,NULL}, *p = a;(A)p+±>data5p+1(B)p->data++56©(*p).data++56(D)++p->data6原创 2021-10-24 14:03:26 · 3138 阅读 · 2 评论 -
【C语言】高斯日记
把之前写的一个题目改了一下,哎,就是玩#include<stdio.h>typedef struct Date{ int year; int month; int day;}date;int months[13] = {0,31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int main(){ void addDays(date startdate, int days, date *enddate); int isRun原创 2021-12-08 15:30:28 · 740 阅读 · 0 评论 -
【C语言】找字符串中连续整数 10
目录1.问题描述2.代码实现3.success1.问题描述2.代码实现#include <stdio.h>#include <string.h>#define N 50#define M 25int main(){ char s[N]; int a[M]; int i, j = 0,count = 0, flag = 0; printf("请输入字符串:"); scanf("%s", s); for( i = 0; i < M; i++) a[原创 2021-11-23 08:38:31 · 581 阅读 · 0 评论 -
【C语言】程序填空题
系列文章目录文章目录系列文章目录1、超长整数加法1、超长整数加法从键盘输入两个超长整数,输出这两个数的和。#include<stdio.h>#include<string.h>#include<stdlib.h>char *ladd(char *s1, char *s2){ int n1, n2, n, i; char *result, c = 0; n1 = strlen(s1); //数字串s1的长度 n2 = strlen(s2);原创 2021-11-20 10:50:37 · 1341 阅读 · 0 评论 -
【C语言】差为2的,素数双胞胎数
若两素数之差为 2,则称两素数为双胞胎数。求出 [2, 300] 之内:(1)所有素数并保存到文件 prime.txt 种(2)有多少对双胞胎数(3)最大的一对双胞胎数#include <stdio.h>int main(){ int isPrime(int a); FILE *fp; int i; int count = 0; int prime[50][2]; if( (fp = fopen("D:\\prime.txt", "w")) == NULL){ pri原创 2021-11-20 09:54:30 · 2503 阅读 · 0 评论 -
【C语言】翻扑克牌 09
#include<stdio.h>int main(){ int a[53]; int i, j; int count = 0; for( i = 1; i <= 52; i++){ a[i] = 1; } for( i = 2; i < 52; i++) { if( i == 2){ //2的拿出来单独翻,会更清楚 for( j = i; j <= 52; j+= i){ if( a[j] == 1){ a[j] =.原创 2021-11-20 09:33:08 · 727 阅读 · 0 评论 -
【C语言】组合数08
已知组合数的递归定义如下所示,编写递归程序求 Cnk 的值(n,k 由键盘输入)。#include<stdio.h>int main(){ int cnk(int k, int n); int n, k; printf("输入n,k(皆为正整数)"); scanf("%d,%d", &n, &k); printf("%d", cnk(k, n));}int cnk(int k , int n){ if( k == 0 || n == k) retu原创 2021-11-16 22:37:41 · 578 阅读 · 0 评论 -
【C语言】递归,求x的n次幂 07
#include<stdio.h>int main(){ double pw(float x, int n); int n; float x; printf("输入x(实数),n(正整数):"); scanf("%f,%d", &x, &n); printf("%lf", pw(x,n)); }double pw(float x, int n){ if( n == 0) return 1; else return x * pw(x, n -.原创 2021-11-16 22:13:49 · 473 阅读 · 0 评论 -
【C语言】递归,求勒让德多项式 05
#include<stdio.h>int main(){ float pn(float x, int n); int n; float x; printf("输入x,输入n(n>=0):"); scanf("%f,%d", &x,&n); printf("%f", pn(x,n));}float pn(float x, int n){ if( n == 0) return 1; else if(n == 1) return x; else.原创 2021-11-16 22:00:16 · 332 阅读 · 0 评论 -
【C语言】求PI的近似值 04
#include <stdio.h>#include <math.h>#define EPS 1e-6int main(){double pi = 1, t; int sign = 1; int fm = 1; t = sign*(1.0 / fm); while(fabs(t) > EPS){ sign = -sign; fm += 2; t = sign*(1.0 / fm); pi += t; } printf("%.10lf", 4.原创 2021-11-15 22:08:19 · 780 阅读 · 0 评论 -
【C语言】求自然对数的底e 03
编程序计算 n 从 1 开始连续变化所对应的 e 值,直到相邻零次 e 值之差的绝对值小于 10-6 为止。要求打印出最后的 e 值和对应的 n#include <stdio.h>#include <math.h>#define EPS 1e-6int main(){ double x0, x1; int n; n = 1; x1 = 1 + (float) 1 / n; n++; do{ x0 = x1; x1 = pow(1+(float)1 /.原创 2021-11-15 20:30:52 · 879 阅读 · 0 评论 -
【C语言】牛顿切线公式计算 a 的立方根 02
//do while#include <stdio.h>#include <math.h>int main(){ float x0, x1; float a; x1 = 1; printf("请输入a(不为0):"); scanf("%f", &a); // do{ x0 = x1; x1 = (2 * pow(x0, 3) + a) / (3 * pow(x0,2)); }while(fabs(x1 - x0) > 1e-6); .原创 2021-11-15 18:20:06 · 629 阅读 · 0 评论 -
【C语言】牛顿迭代法求线性方程根 01
xn+1 = xn - f(xn)/f’(xn)求在x = -1时的根#include <stdio.h>#include <math.h>int main(){ float x0, x1; float f, f1; x1 = -1; do{ x0 = x1; f = pow(x0, 41) + pow(x0, 3) + 1; f1 = 41*pow(x0,40) + 3*pow(x0,2); x1 = x0 - f/f1; }while(原创 2021-11-14 08:48:49 · 1136 阅读 · 0 评论 -
【C语言】递归实现降序数判断
#include <stdio.h>#define M 999int main(){ int islower(int n); int n = 67539; if(islower(n) == -1){ printf("%-6d不是降序数", n); }else{ printf("%-6d是降序数", n); } getchar(); return 0;}int islower(int n){ if(n == 0) return M ; if(n % 10原创 2021-11-14 07:42:29 · 556 阅读 · 0 评论 -
【C语言】定义个函数,将调用函数的结果写入文件
#include <stdio.h>#include <stdlib.h>#include <math.h>int main(){ float T(float a, float b, float c); float a, b, c; int i; FILE *fp; if( (fp = fopen("D://data.txt", "a+")) == NULL) { printf("文件打开失败"); exit(1); } for( i = 0原创 2021-11-13 23:59:01 · 988 阅读 · 0 评论 -
【C语言】递归,按降序完成100个数排序
#include <stdio.h>#include <math.h>#define N 100void swap(int *x, int *y){ int temp; temp = *x; *x = *y; *y = temp;}void sort(int *p, int *q){ int *max, *s; if(p == q) return ; for(max = p, s = p + 1; s <= q; s++) if( *s >原创 2021-11-13 23:43:59 · 1003 阅读 · 0 评论 -
【C语言】求从2起到指定范围内的素数
#include <stdio.h>#include <math.h>#define MAX 200int main(){ unsigned int i, range, factor, k; int sieve[MAX]; printf("please input the range:"); /*range指出在多大范围内寻找素数*/ scanf("%d", &range); for( i = 2; i<=range; i++) sieve[原创 2021-11-13 23:25:26 · 276 阅读 · 0 评论 -
【C语言】将数组中的数据按逆序存放
#include <stdio.h>#include <math.h>int main(){ const int N = 20; int a[N], i, j, t; for(i = 0; i < N;i++) scanf("%d", &a[i]); i = 0; j = N; while( i < j){ t = a[i]; a[i] = a[j - 1]; a[j - 1] = t; i++; j--; } fo原创 2021-11-13 23:17:17 · 4833 阅读 · 0 评论