![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
是落落呢
这个作者很懒,什么都没留下…
展开
-
C语言练习(十八)
1. 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?int climbStairs(int n){ if(n==1) return 1; else if(n==2) return 2; else{ int i; int* arr = (int*)malloc(sizeof(int)*n); arr[0] = 1; ar原创 2022-03-24 13:30:39 · 163 阅读 · 0 评论 -
C语言练习(十七)
给你一个非负整数 x ,计算并返回 x 的 算术平方根1. 简单粗暴int mySqrt(int x){ return (int)sqrt(x);}整数循环int mySqrt(int x){ if(x==0) return 0; long long MIN = pow(10,10); int i=1; int ans = -1; while(i<=x){ long mid; mid = x原创 2022-03-24 12:52:22 · 1344 阅读 · 0 评论 -
C语言练习(十六)
1. 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。int removeDuplicates(int* nums, int numsSize){ //双指针 int slow,fast; slow = 1; fast = 1; while(fast < numsSize){ if(nums[fast] != nums[fast-1])原创 2022-03-24 11:50:33 · 79 阅读 · 0 评论 -
C语言练习(十五)
1. 升序数组插入元素#include"stdio.h"#define N 20void insert(int arr[], int* len, int num){ int i=0,j; while(arr[i] < num) i++; for(j=*len;j>i;j--) arr[j] = arr[j-1]; arr[i] = num; *len++;}void show(int arr[], int* len){ int i; for(i=0;i<原创 2022-03-16 21:46:12 · 1177 阅读 · 0 评论 -
C语言练习(十四)
1. 输入10个整数,计算其最大值和最小值,并交换它们所在数组中的位置#include"stdio.h"#define SIZE 10void swap(int* a, int* b){ int temp; temp = *a; *a = *b; *b = temp;}void input(int num[]){ int i=0; for(;i<SIZE;i++) scanf("%d",num+i);}void max_min(int num[]){ int i,原创 2022-03-16 17:17:25 · 1169 阅读 · 0 评论 -
C语言练习(十三)
1. 输入一个字符串,统计其中有多少个单词。假设单词之间以空格隔开。#include"stdio.h"#define N 20int count(char s[]){ int num,i; num = (s[0]!='\0')?1:0; i=1; while(s[i]!='\0'){ if(s[i] !=' ' && s[i-1] == ' ') num++; i++; } return num;}int main(){ char str[N]; p原创 2022-03-15 14:14:23 · 1539 阅读 · 0 评论 -
C语言练习(十二)
1. 从键盘输入一个整数m,若m不是素数,则计算并输出其所有因子(不包括1)。例如对于16,输出2,4,8;否则输出“No divisor! It is a prime number”#include"stdio.h"int isPrime(int x){ //判断x是否是素数 int i=x-1; while(x%i!=0){ i--; } return i>1?0:1;}int main(){ int n,i; printf("n:"); scanf("%d",&a原创 2022-03-06 17:06:11 · 1317 阅读 · 0 评论 -
C语言练习(十一)
1. 1+3+5+7+…+99+101#include"stdio.h"int main(){ int i,sum=0; for(i=1;i<=101;i+=2) sum+=i; printf("%d",sum); return 0;}2. 1×2×3 + 3×4×5 + … + 99×100×101#include"stdio.h"int main(){ int i,add,sum=0; for(i=1;i<=99;i+=2){ add = i*(i+1)原创 2022-03-03 18:09:52 · 1814 阅读 · 0 评论 -
C语言练习(十)
1. 从键盘任意输入一个三位数,编程计算并输出它的逆序数(忽略整数前的正负号)例如,输入-123,则忽略负号,由123分离出百位1,十位2,个位3,然后计算3×100+2×10+1 = 321,并输出321。#include"stdio.h"#include"math.h"int main(){ int n,n1,n2,n3; scanf("%d",&n); n=fabs(n); //或者是 //if(n<0) n *= -1; n1 = n%10; //个位 n2 =原创 2022-03-03 15:45:46 · 1200 阅读 · 0 评论 -
C语言练习(八) ------F0803 编程题 2019年
1. 编写程序实现 s = 1+2+3+…+n,n<10000;n由用户输入;输出s#include<stdio.h>int main(){ int i,n,sum; i = 1; sum = 0; printf("输入n:"); scanf("%d",&n); if(n>=10000){ printf("数字不合法,大于10000\n"); return 0; } while(i<=n){ sum = sum + i; i++;原创 2022-02-28 10:30:23 · 1077 阅读 · 0 评论 -
C语言练习(七)-----F0803 编程题 2018年
1. 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?(数字小于100000)#include"stdio.h"#include"math.h"int is_Square(int n){ int i = (int)sqrt(n); if(i*i == n) return 1; else return 0;}int main() { int i; for(i=1;i<100000;i++){ if(is_Square(i+10原创 2022-02-27 15:00:26 · 311 阅读 · 0 评论 -
C语言练习(六)-----F0803 编程题 2017年
1. 请用c语言编写程序,求和:S = 1-(1/2)+(1/3)-(1/4)+…+(1/n),其中n=10 #include"stdio.h"int main(){ int i = 1; int tag = 1; //表示符号 double sum = 0; while(i<=10){ sum += tag*(1.0/i); i++; tag *= -1; } printf("%f\n",sum); return 0;}2. 请用C语言编写一个函数fun(ch原创 2022-02-25 14:57:30 · 375 阅读 · 0 评论 -
C语言练习(五) F0803编程题-----2016年
第一题#include"stdio.h"int count(int x){ //求小于x的所有因子之和 int sum,i; sum=1; for(i=2;i<x;i++){ if(x%i==0) sum += i; } return sum;}int main(){ int i; for(i=1;i<=10000;i++){ if(i==count(i)) printf("%2d,",i); } return 0;}第二题#in原创 2022-02-23 16:22:11 · 212 阅读 · 0 评论 -
C语言练习(四) F0803编程题----2015年
1. 编程题1.1 求出10至1000之间能同时被2,3,7整除的数,并输出#include"stdio.h"int main(){ int i; for(i=10;i<=1000;i++){ if(i%2==0 && i%3==0 && i%7==0) printf("%d\n",i); } return 0;}1.2 任意输入一个三位正整数,十位上的数不动,将个位和百位上的数字交换,构成一个新的正整数后输出。(如:486变为684)原创 2022-02-23 13:12:20 · 556 阅读 · 0 评论 -
C语言练习(三) -----F0803 编程题 2020年
1. 输入一个位数小于100的整数,判断它是不是回文数如12321是回文数,即个位与万位相同,十位与千位相同。如果是回文数,输出YES,如果不是回文数,输出NO。题解:小于0,一定不是回文数。个位数,一定是回文数。两位数,个位与十位相同是回文数,否则不是。#include"stdio.h"int _is_palindrom(int n){ int i1,i2; if(n < 0) return 0; i1 = n/10; //十位 i2 = n%10; //原创 2022-02-23 12:50:43 · 878 阅读 · 0 评论 -
C语言输入字符串
文章目录1.scanf2.gets1.scanf输入字符串使用 %s。不能读取空格,遇到空格自动结束。例如,输入abcde,得到abcde;而输入abc de,只能得到abc。输入格式:scanf("%s",str)。其中str表示 地址值。附代码:void _scanf(){ char str1[MAX],str2[MAX]; scanf("%s",str1); printf("str1:%s\n",str1); printf("\n"); scanf("%s",s原创 2022-02-13 12:28:22 · 11809 阅读 · 0 评论 -
C语言练习(二) -----F0803 编程题 2021年
1.输入a[n],求a[0]!+a[1]!+…+a[n-1]!#include<stdio.h>int fab(int n){ //求n! int i=1,total=1; while(i<=n){ total *= i; i++; } return total;}int n_sum(int a[],int len){ int sum=0,i=0; for(;i<len;i++) sum += fab(a[i]); return sum;}原创 2022-02-12 16:20:31 · 762 阅读 · 2 评论 -
C语言练习(一)
1.求1+2+3+…+n#include<stdio.h>int main(){ int i,n,sum; i = 1; sum = 0; scanf("%d",&n); while(i<=n){ sum = sum + i; i++; } printf("%d\n",sum); //sum为最终结果 return 0;}2.求n!使用循环#include<stdio.h>int main(){ int i,n,total原创 2022-02-09 20:52:03 · 647 阅读 · 0 评论 -
C语言字符串数组赋值错误
直接上代码:#include"stdio.h"int main(){ char a[10]; for(int i = 0; i<10;i++){ printf("第%d个:",i); scanf("%c",&a[i]); } return 0;}经典的错误,标准的零分!这样的赋值手法,是不正确的,是不规范的,是无法达到预期效果的。#include"stdio.h"int main(){ char原创 2021-11-14 01:02:39 · 1982 阅读 · 1 评论 -
expected declaration or statement at end of input
expected declaration or statement at end of input这个是因为代码中出现括号不匹配现象,检查代码中括号的对应问题原创 2021-11-13 23:57:44 · 654 阅读 · 0 评论 -
多个c文件使用相同的结构体
当我们多个文件使用的结构体相同时,每个文件中都把这个结构体都重新定义一遍,这绝对不符合咱们爱偷懒的小习惯。当然是想把这个结构体只定义一遍在一个文件中,然后其他c文件去导入这个文件就OK啦。所以下面我们来讲这个方法。首先我们把需要的结构体定义在 .h文件中/*struct.h*/typedef int ElemMent;typedef struct{ ElemMent elem; char data; /* data */}List;然后.c文件导入这个.h头文件/原创 2021-07-14 21:42:53 · 3624 阅读 · 0 评论 -
函数指针与回调函数
函数指针的就是一个指针,只不过它指向的是一个函数。函数在内存中占用一组地址,函数名即代表函数的起始地址,也称函数的入口地址,这一点与数组类似。函数指针变量指向的就是函数的入口地址。函数指针的基本格式:返回类型 (* 指针变量名)(参数类型)int (* ptr)(int int)int add(int a,int b){ return a+b;}ptr=add;add(2,3);//5(* ptr)(2,3);//5函数指针有两点注意:函数指针的返回类型要与所指向函数原创 2021-07-11 13:01:21 · 183 阅读 · 0 评论 -
malloc
malloc函数,实现动态分配连续的内存空间。malloc(size) 其中size表示需要的内存字节数,返回类型是void *,返回值为内存的首地址。#define n 10int *addres;address=(int *)malloc(n*sizeof(int));以上代码就是申请了10个连续的4个字节的内存地址。上面代码中的 (int *)是强制转换,将void * 转换成我们需要的类型。...原创 2021-06-17 16:20:04 · 55 阅读 · 0 评论