![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C语言
c学习过程中遇见的问题
贪玩的yl
无欲无求,所有文章都别信,都是我在瞎说
展开
-
数据结构(自用)
数组与链表数组数组一般存储相同类型的数据,由连续的内存进行存储数组非尾部的插入和删除比较复杂,因为还涉及其他所有项的移位数组无法动态扩容(大小无法改变)我们把数组称为顺序表链表链表查询的特点是从头开始依次(顺着指针域)查询,导致了效率低;链表的插入很快,但搜寻就很慢单链表的删除需要知道:要删除的结点和上一个结点(前驱),需要对前驱的指针进行变更头结点相当于一个固定的入口,不存储有意义的值小总结从下面可以得知,当进行查询操作用数组,插入和删除操作用链表跳表跳表(SkipList,全原创 2022-01-24 12:11:45 · 271 阅读 · 0 评论 -
C|如何将字符数字变成值相同的整数
把字符转换成值想通的整数需要用字符减去字符’0’往往这里的转换还需要用到isdigit函数进行if判断,isdigit(s)作用检查s是否是数字0到9char a = '1';int b = a - '0' ;相关资料原创 2021-08-27 10:44:17 · 558 阅读 · 0 评论 -
(C)读入若干行字符(每行不超过80个),写入到文本文件中
要注意的是输入的时候需要手动结束按住Ctrl+Z,再按回车#include<stdio.h>int main(void){ int i,N=0; char c[81]; FILE *fp; /*文件处理的过程为打开文件→读、写文件→关闭文件*/ fp=fopen("E:\\a.txt","w"); //打开的文件地址,以只写形式,若已存在则刷新已有文件 /*读入若干行不用for,for是指定次数的输入,转而采用while*/ while(gets(c)){原创 2021-06-28 17:28:16 · 797 阅读 · 0 评论 -
(C)编制函数,在主调函数的一维数组中查找最大值及该元素下标、最小值及该元素下标
#include<stdio.h>int main(void) //主调函数 { int b[999]; int n,i; int max,k; void findmax(int *a,int n); void findmin(int *a,int n); printf("请输入你要测试的数字个数\n"); scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&b[i]); findm原创 2021-06-13 17:01:22 · 3187 阅读 · 0 评论 -
(C)(指针)编制函数,输入十个数,按绝对值从小到大排序后输出
#include<stdio.h>#include<math.h>int main(void){ int i,j,k,a[11],temp,*p=a; //初始化指针 ,a是数组首地址 for(i=0;i<10;i++){ scanf("%d",p+i); } for(i=0;i<9;i++){ k=i; for(j=i+1;j<10;j++) if(fabs(a[j])<fabs(a[k])) k=j; temp原创 2021-06-13 15:52:59 · 2851 阅读 · 0 评论 -
(C)编制函数,接受从主调函数传入的、有n个元素的一维数组的地址,对该数组按绝对值从小到大排序
#include<stdio.h>#include<math.h>/*主函数用于传入指针的地址数据*/int main(void){ void sort(float a[],int n); //自定义函数在主函数后面的情况下需要声明 int i,n; printf("请输入数组的长度\n"); scanf("%d",&n); float b[999]; for(i=0;i<n;i++) scanf("%f",b+i); sor原创 2021-06-11 21:25:58 · 1211 阅读 · 0 评论 -
(C)输入4行字符,每行不超过60个字符,将其中所有的字符‘$’改作‘S‘
#include<stdio.h>#include<string.h>int main(void){ char str[4][61],temp; int i,j; for(i=0;i<4;i++) while(gets(str[i]), strlen(str[i])<1); for(i=0;i<4;i++) for(j=0;j<=strlen(str[i]);j++) { if(str[i][j]=='原创 2021-06-11 20:05:02 · 2137 阅读 · 0 评论 -
(C)输入一个字符串(串长不超过60),删除字符串中所有的空格符
#include<stdio.h>int main(void){ char a[61],b[61]; int i,j=0,k=0; gets(a); for(i=0;i<61;i++) { if(a[i]!=' ') { b[k]=a[i]; k++; } } puts(b);}原创 2021-06-11 20:02:59 · 2076 阅读 · 0 评论 -
(C)输入一个5行、6列的数组,将每1行的所有元素都除以该行上绝对值最大的元素,然后输出数组
#include<stdio.h>#include<math.h> //绝对值函数在math头文件里面包含了,abs和fabs都是求绝对值的现成函数,abs用于int,fabs用于double(指返回值)int main(void){ double a[5][6],max[5]; //max长度为行数,每一行存一个 int i,j; //i是行,j是列 max[0]=a[0][0]; /*******************输入*************/ fo原创 2021-06-09 15:33:42 · 1642 阅读 · 0 评论 -
(C)什么是同构数
什么是同构数:比方说一个数x,x的平方的后几位和x是一样的。例:5的平方25,尾部为5,而原数一样;6的平方36,尾部6和原数6一样。例题:输出1到5000内的同构数#include<stdio.h>int main(void){ int i,x; //同构数:它本身的平方后,尾部值也为它本身 for(i=1;i<=5000;i++){ x=i*i; if(x%10==i||x%100==i||x%1000==i) printf("%d\n",i);原创 2021-04-25 15:38:49 · 590 阅读 · 0 评论 -
输入三个数,比较绝对值大小,按原值输出
C的一道作业题感觉逻辑不是很复杂,但是我在上机的时候反复做,还是没有做出来,现在把它放在这,这只是其中一种方法。#include<stdio.h>#include<math.h>void main(void){ int a,b,c,x,y,z,min,mid,max; scanf("%d%d%d",&a,&b,&c); x=fabs(a); y=fabs(b); z=fabs(c); if(x>=y) { max=a;原创 2021-04-03 11:10:29 · 974 阅读 · 0 评论 -
C语言学习记录(学校上课版)
书:C程序设计基础 浙江科学技术出版社第二章——基本数据类型与常用库函数:转移字符表和ASCII表大致要知道,要考对于字符,单引号内表示单个字符,如:‘a’,双引号表示字符串,如“a”,格外注意,单个字符也可作为字符串,因为里面默认有个/0的存在1个字节包含8个位char类型占8个位,short占16位,int、long占32位,它们前面加unsigned并不改变数据长度,只是数值范围没了负数整型数据的数值范围需要掌握,包含科学计数法版本和精确数字版本,除了unsigned long的精确数字原创 2021-03-11 22:07:34 · 203 阅读 · 0 评论 -
电脑主键盘的“/”与小键盘的“/”keycode不同
C++学习中遇到的问题使用的软件:Dev-C++ 5.11在用快捷键ctrl+/,想要直接对一行进行注释的时候,发现这个“/”,我在使用小键盘的“/”时,电脑是无法识别这个快捷键的,必须要主键盘的“/”,可以变问号那个。经讨论,得到初步结论,这两个键的keycode是不一样的,就好像电脑有多个相同的键表示相同的意思(即输出相同的结果),也许是因为电脑的快捷键只识别主键盘的“/”。...原创 2020-09-01 08:53:00 · 359 阅读 · 0 评论