
C语言
文章平均质量分 54
C语言语法及其练习题
_NOUS_
耐心
展开
-
C语言错题集(LeetCode、MOOC、PTA、牛客网)
C语言错题集PTA 练习2-6 计算物体自由下落的距离 (5 分)输入格式:输出格式:练习2-12 输出华氏-摄氏温度转换表 (15 分)输入格式:输出格式:输入样例1:输出样例1:输入样例2:输出样例2:PTA 练习2-13 求N分之一序列前N项和 (15 分)输入格式:输出格式:输入样例:输出样例:PTA 习题5-2 使用函数求奇数和 (15 分)函数接口定义:裁判测试程序样例:输入样例:输出样例:PTA 习题5-4 使用函数求素数和 (20 分)函数接口定义:裁判测试程序样例:输入样例:输出样例:PT原创 2021-07-25 16:47:19 · 7430 阅读 · 1 评论 -
学生管理小系统2.0(C语言)
#include <stdio.h>#include <stdlib.h>//其中包含system函数#include <conio.h>//定义了通过控制台进行 数据输入 和数据输出的函数,如getch函数。#include <string.h>//定义字符数组#include <math.h>#include<Windows.h>typedef struct student //学生结构信息原创 2021-04-18 16:50:45 · 310 阅读 · 1 评论 -
数据结构树、堆——学习记录
树:1.文件夹是树而不是无向图,因为任意两个文件夹有且仅有唯一的一条路径连通。二叉树1.根节点有时也称为祖先。2.深度是指从根到这个结点的层数(根为第一层)。3.满二叉树:如果二叉树中每个内部结点都有两个儿子,这样的二叉树叫做满二叉树。4.完全二叉树:如果一棵二叉树除了最右边位置上有一个或者几个叶结点缺少外,其他都是丰满的,这样的二叉树叫完全二叉树。(除了树的最后一层结点不需要是满的,其它的每一层从左到右都是满的,如果最后一层结点不是满的,那么要求左满右不满)。右图中N没有右儿子结点,因此不原创 2021-04-18 16:37:08 · 192 阅读 · 0 评论 -
线性表的链式存储结构——链表学习记录
链表总结#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct ListNode{ int val; struct ListNode* next;}ListNode;struct ListNode* createListtail(struct ListNode* L){/*尾插创建含头结点的链表,输入-1终止。 */ int n; scanf("%d",&n);原创 2021-04-13 19:55:35 · 414 阅读 · 0 评论 -
C语言二分查找(折半查找)
#include <stdio.h>#include<stdlib.h>int BinarySearch( int a[], int X ){ int low=1,high=10,mid; while(low<=high){ mid=(high+low)/2; if(a[mid]>X) high-=1; else if(a[mid]<X) low+=1; else return m原创 2021-03-28 13:34:39 · 162 阅读 · 0 评论 -
C语言希尔排序
简单插入排序的改进版。简单插入排序对数据少/基本有序时很有效,因此通过将序列进行分组排序使得每组容量变小,再进行分组排序,然后进行一次简单插入排序即可。分组是跳跃分组,逐渐缩小增量。按组进行插入排序操作,增量为1时,只需微调即可结束。void shellsort(int a[],int n){ int j; for(int gap=n/2;gap>0;gap/=2){ for(int i=gap;i<n;i++){ int t=a[i]; for(j=i-gap;t<原创 2021-03-28 09:27:06 · 132 阅读 · 0 评论 -
C语言简单选择排序
最坏情况下,即待排序记录初始状态是按第一条记录最大,之后的记录从大到小顺序排列,则需要移动记录的次数最多为3(n-1)。简单选择排序过程中需要进行的比较次数与初始状态下待排序的记录序列的排列情况无关。当i=1时,需进行n-1次比较;当i=2时,需进行n-2次比较;依次类推,共需要进行的比较次数是(n-1)+(n-2)+…+2+1=n(n-1)/2,即进行比较操作的时间复杂度为O(n^2),进行移动操作的时间复杂度为O(n)。#include <stdio.h>void swap(int *a原创 2021-03-27 14:04:42 · 393 阅读 · 0 评论 -
C语言直接插入排序
最好:本身有序,只考虑前一次,进行n-1次比较,0次移动 时间O(n).最坏:数组逆序,每次都要和前面的全部比较移动 时间复杂度:O(n^2).#include <stdio.h>void insertsort(int a[],int n){ for(int i=1;i<n;i++){ if(a[i]<a[i-1]) { int t=a[i];//i之前的元素为已排好的有序表 int j=i-1;// 要a[i-1]为有序表最后一项,要插入到有序表中,所以不原创 2021-03-27 14:03:58 · 143 阅读 · 0 评论 -
C语言冒泡排序的优化
冒泡排序的优化//把最大(小)的元素移动到首位。//冒泡排序的优化//优化:让已有的算法更加快速、省时,省空间冒泡排序的优化//把最大(小)的元素移动到首位。//冒泡排序的优化//优化:让已有的算法更加快速、省时,省空间#include <stdio.h>void bubble(int a[],int n){ for(int i=0;i<n;i++){ int flag=1; for(int j=0;j<n-1-i;j++){//第i个数只需要排n-1-i次原创 2021-03-25 22:30:31 · 397 阅读 · 0 评论 -
C语言数组和指针的区别
Dennis M. Ritchie的文章(Chistory)https://www.bell-labs.com/usr/dmr/www/chist.htmlProblems became evident when I tried to extend the type notation, especially to add structured (record) types. Structures, it seemed, should map in an intuitive way onto memory原创 2021-03-22 19:59:36 · 3083 阅读 · 0 评论 -
字符数组和字符串的区别,C语言字符数组和字符串区别详解
C 语言中并不存在字符串这个数据类型,而是使用字符数组来保存字符串。那么,字符数组就一定是字符串吗?对于这个问题,大多教科书中的回答是“是”。其实不然,字符数组和字符串是完全不相同的两个概念,千万不要混淆。分析如下所示的示例代码。#include <stdio.h>#include <string.h>int main(void){ /*字符数组赋初值*/ char cArr[] = {'I','L','O','V','E','C'}; /*字符串赋原创 2021-03-22 19:06:38 · 17049 阅读 · 4 评论 -
c语言里关于switch的问题(输入星期)
c语言里关于switch的问题这个问题要从getchar()这个函数入手,getchar 由宏实现:#define getchar() fgetc(stdin)。getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).就是说你输入T+Enter的时候,第一个,也就是while循环里的getchar()读到了T,进入if中的getchar,而你输入的Enter保存在缓冲区中,直接就被这个getc原创 2021-03-19 20:44:57 · 718 阅读 · 0 评论 -
什么是C语言的合法正确标识符?什么是C语言关键字?
什么是C语言的合法标识符?C语言标识符是指用来标识某个实体的一个符号,在不同的应用环境下有不同的含义,标识符由字母(A-Z,a-z)、数字(0-9)、下划线“_”组成,并且首字符不能是数字,但可以是字母或者下划线。例如,正确的标识符:abc,a1,prog_to。标识符长度是由机器上的编译系统决定的,一般的限制为8字符(注:8字符长度限制是C89标准,C99标准已经扩充长度,其实大部分工业标准都更长)。标识符对大小写敏感,即严格区分大小写。一般对变量名用小写,符号常量命名用大写扩展资料在汇编语言里,原创 2021-03-07 12:36:43 · 33929 阅读 · 4 评论