- 博客(24)
- 收藏
- 关注
原创 static关键字用法小结
static修饰变量a. 函数中局部变量: 声明周期延长:该变量不随函数结束而结束 初始化:只在第一次调用该函数时进行初始化 记忆性:后序调用时,该变量使用前一次函数调用完成之后保存的值 存储位置:不会存储在栈上,放在数据段b. 全局变量 改变该变量的链接属性,让该变量具有文件作用域,即只能在当前文件中使用c. 修饰变量时,没有被初始化时会被自动初始化为0static修饰函数改变该函数的链接属性,让该函数具有文件作用域,即只能在当前文件中使用strlen是用来.
2021-04-07 15:39:26 171
原创 栈的应用———中缀表达式转后缀表达式
中缀表达式转后缀表达式文章目录中缀表达式转后缀表达式前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结中缀表达式转后缀表达式规则:如果是数字,直接输出;如果是左括号,直接入栈;如果是 * 或者 / , 出栈,直到栈空或者左括号或者遇到 + 或者 - ,当前符号入栈;如果是 + 或者 - ,出栈,直到栈空或者左括号,当前符号入栈;中缀表达式走完,则将栈中的内容全部弹出。前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重
2021-04-05 15:43:59 3114 2
原创 有5个学生, 每个学生包含学号num, 姓名name, 三门课的成绩score[3]. 从键盘获取所有的学生数据, 输出3门课的平均成绩, 以及最高分的学生数据。
有5个学生, 每个学生包含学号num, 姓名name, 三门课的成绩score[3];从键盘获取所有的学生数据, 输出3门课的平均成绩, 以及最高分的学生数据。#include<stdio.h>typedef struct student{ int num; char name[20]; int score[3]; float ave;}student;student stu[20],tmp;int i,j;void input(){ for (i = 0
2021-01-23 21:08:44 11407
原创 定义一个结构体变量,包含年,月,日; 实现一个函数Days,由main函数将该结构体变量指针传给Days函数, Days函数返回该日期是当年的第几天
定义一个结构体变量,包含年,月,日;实现一个函数Days,由main函数将该结构体变量指针传给Days函数,Days函数返回该日期是当年的第几天。#include<stdio.h>typedef struct data{ int year; int month; int day;}data;int Days(const struct data *d){ int sum = 0; int a[] = { 31, 28, 31, 30, 31, 30, 31, 31, 3
2021-01-23 21:01:29 1773
原创 从键盘输入一个字符串,将其中的小写字母全部转换成大写字母, 然后输出到一个磁盘文件“test”中保存,输入的字符串以“!” 结束。
从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存,输入的字符串以“!”结束。#include<stdio.h>#include<string.h>#include<assert.h>int main(){ FILE *fw = fopen("D:\\test", "w");//创建一个名为“test”的文件 assert(fw != NULL);//断言文件打开成功 printf("请输入一个字符串
2021-01-23 20:41:02 3194
原创 1-2+3-4+5-6+7...n
#include <stdio.h>int main(){ int n; int sum = 0;//注意初始化 int flag = 1; scanf("%d", &n); for (int i = 1; i <= n; i++) { sum += flag * i; flag *= -1;//符号变化 } printf("%d \n", sum); return 0;}
2020-12-22 21:40:12 293
原创 辗转相除法求最大公约数
欧几里得算法又称辗转相除法,是指用于计算两个非负整数a,b的最大公约数。假如需要求 1997 和 615 两个正整数的最大公约数,用欧几里得算法,是这样进行的: 1997 / 615 = 3 (余 152)615 / 152 = 4(余7) 152 / 7 = 21(余5) 7 / 5 = 1 (余2) 5 / 2 = 2 (余1) 2 / 1= 2 (余0) 至此,最大公约数为1 以除数和余数反复做除法运算,当余数为 0 时,取当前算式除数为最大公约数,所以就得出了 1997 和 615 的最大公.
2020-12-22 21:35:34 779
原创 调用函数计算两个整数的平均值
#include <stdio.h>int ave(int a, int b){ int c; c = (a + b) / 2; return c;}int main(){ int c = ave(20, 10); printf("%d \n", c); return 0;}
2020-12-17 23:25:01 3895
原创 指针知识整理第一弹
指针基础一.指针是什么?二.指针的大小三.指针的初级使用及指针与数组一.指针是什么?在C语言的学习中,我们会大量使用指针,在使用指针之前,我们一定要了解指针是什么,才能对指针进行熟练的运用。对于指针我们可以用一句话来概括:指针就是内存地址。指针变量就是用来存放内存地址的变量。我们用一段代码来验证一下:#include <stdio.h>int main(){ int a = 10; int *p = &a; printf("%d\n", p);//输出a的内存
2020-12-12 18:55:47 146
原创 数列异或操作[异或,循环]
给你两个整数,n和start,其中n为数据的数量,start为第一个数据。当前数据定义为:num = start + 2*i(i表示第几个数据,从0开始)。请返回数列中所有数据按位异或(XOR)后得到的结果.示例 1:输入:n = 5, start = 0输出:8解释:数列为 [0, 2, 4, 6, 8],其中 (0 ^ 2 ^ 4 ^ 6 ^ 8) = 8 。"^" 为按位异或运算符。示例 2:输入:n = 4, start = 3输出:8解释:数列为 [3, 5, 7, 9],其中 (
2020-12-09 22:36:32 683
原创 重新排列数组
给你一个数组 nums ,数组中有 2n 个元素,按 [x1,x2,…,xn,y1,y2,…,yn] 的格式排列。请你将数组按 [x1,y1,x2,y2,…,xn,yn] 格式重新排列,返回重排后的数组。示例 1:输入:nums = [2,5,1,3,4,7], n = 3输出:[2,3,5,4,1,7]解释:由于 x1=2, x2=5, x3=1, y1=3, y2=4, y3=7 ,所以答案为 [2,3,5,4,1,7]示例 2:输入:nums = [1,2,3,4,4,3,2,1], n
2020-12-09 22:34:50 449
原创 两种方法 求“ 好数对 ”的数量
给你一个整数数组nums,如果一组数字(i,j)满足 nums[i] == nums[j] 且 i < j,就可以认为这是一组好数对,然后返回好数对的数目。算法分析:1.要确认nums数组里的一组数字(i,j)是否相等,我们肯定会想到要运用双层循环,然后来进行判断;2.要输出好数对的数目一定要定义一个计数器,这里定义count,判断相等则count ++。代码如下://第一种方法 调用函数#include <stdio.h>int ArrPairs(int nums[], i
2020-12-08 19:30:37 535
原创 两种方法求一维数组前缀和
问题描述:给你一个一维数组nums。数组 前缀和 的计算公式为:rtSum[i] = sum(nums[0] … nums[i])。示例:输入: nums = [1, 1, 1, 1]输出:[1, 2, 3, 4, 5]前缀和计算过程为[1, 1+1, 1+1+1, 1+1+1+1, 1+1+1+1+1]
2020-12-08 18:49:45 639
原创 有若干张一元、五元、十元面值的钞票,要支付十五元有多少种方法?
问题描述:有若干张一元、五元、十元面值的钞票,要支付十五元有多少种方法?算法分析:1.十元凑十五元最少需要0张,最多需要1张; 五元凑十五元最少需要0张,最多需要3张; 一元凑十五元最少需要0张,最多需要15张;2.将1中三种情况分别组合起来,若刚好组合起来等于十五,则分别输出这时一元、五元、十元各自的张数;3.要统计多少种方法,则需要定义一个计数器;4.输出.#include <stdio.h>int main(){ int a = 1; int b = 5;
2020-12-06 00:38:26 3800
原创 求解一元二次方程的根
编写程序求解一元二次方程(ax^2 + bx + c = 0)的根:描述算法:1.创建a, b, c三个变量,从键盘获取这三个变量的值;2.计算delta;3.根据delta判断方程的根当delta>=0 : 方程有两个不相等的根x1 = (-b + sqrt(delta)) / 2a;x2 = (-b - sqrt(delta)) / 2a;当detla<0:方程无解;4.输出;#include<stdio.h>#include<mat
2020-12-06 00:28:20 1996
原创 判断 “完数”
一个数恰好等于它的因子之和,这个数就成为“完数”。#include <stdio.h>bool IsPrefect(int n){ int sum = 0; for (int i = 1; i < n; i++) { if (n % i == 0)//判断n的因子 { sum += i;//求因子之和 } } return sum == n;}int main(){ for (int i = 1; i < 1000; i++) {
2020-12-03 20:52:37 206
原创 判断水仙花数
#include <stdio.h>bool isFlower(int n){ int sum = 0; int temp; int m = n; while (n != 0) { temp = n % 10;//得到个位 sum += temp* temp * temp; n = n / 10;//丢弃个位 } return sum == m;}int main(){ for (int i = 100; i < 1000; i++) {
2020-12-03 20:35:51 196
原创 求n的阶乘(n!)
#include<stdio.h>int main(){ int n; int ret = 1;//注意初始化不能为0 scanf("%d", &n); for (int i = 1; i <= n; i++) { ret *= i; } printf("%d \n", ret); return 0;}
2020-12-02 00:34:58 498
原创 输出九九乘法表 C语言
#include<stdio.h>int main(){ for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { printf("%d * %d = %2d ", i, j, i * j); } printf("\n");//应按j行换行输出 } return 0;}运行截图如下:
2020-12-02 00:28:13 324
原创 C知识点整理第二弹
1.位运算符a.& 按位与只有对应的两个二进位均为1时,结果位才为1 ,否则为0。b.| 按位或只要对应的两个二进制位有一个为1时,结果位才为1 ,否则为0。c.^ 按位异或只要对应的两个二进制位不相同时,结果位才为1 ,否则为0。10010101 1100 两个变量数值相等,且不为零,则异或为零。d.~取反对参与运算的数的各二进位按位求反。例如:~1001 0110e.<<左移左移n位就是乘以2的n次方。f.>>右移右
2020-11-24 21:30:34 113
原创 C知识点整理第一弹
1.C标识符C规定,标识符只能是字母(A~ Z,a~z)、数字(0 ~ 9)、下划线(_)组成的字符串,并且其第一个字符必须是字母或者下划线。以下标识符非法: *3e 以数字开头 s*r *为非法字符 -xc -(减号)非法字符*2.函数之间的顺序是任意的。如果主函数调用的函数在它的后面,则将此函数的声明写于主函数之前即可。3.位(bit)是计算机中最小的数据单位。每一位的状态只能是0或1。字节:1个
2020-11-23 23:32:42 421 1
原创 C语言练习1
C知识点整理1.进制转换二进制转十进制: 1111 1 * 2^3 + 1 * 2^2 + 1 * 2^1 + 1 * 2^0 = 15二进制转十六进制; 十进制转二进制: 十六进制转二进制:2.函数顺序 函数的顺序都是任意的,主函数不一定在最后面。 如果主函数在前面调用其他在它后面的函数,则要将此函数的声明放在主函数之前。3.C语言中连续比较例题:1+2+3……+x < 1000;1+2+3……+x+(x+1) >1000;求x;#include <
2020-11-23 22:41:19 159
原创 小白规划
小白的自述普通一本软件工程大二女生,误打误撞进入这个专业,以前从来没有了解过这个方面的知识,也从来没想过自己有一天会涉足这个领域。经过一年的迷茫和手足无措,我郑重的写下这篇博客,规划自己新的人生。我也不想再冠冕堂皇谈一大堆梦想之类的,我的目标很简单,就是高薪。近期目标:学好各类专业课,不挂科。远期目标:熟练掌握C、C++、Java 、不断提高自己的能力 。学习方法:每天在LeetCode上做三道题,阅读相关专业书籍一小时。代码肯定是要自己亲自动手,多练才行。看书是为了学习更多其他前辈总结的的知
2020-11-18 16:54:38 894 11
原创 PTA练习
6-1 简单输出整数 (10分)本题要求实现一个函数,对给定的正整数N,打印从1到N的全部正整数。函数接口定义:void PrintN ( int N );其中N是用户传入的参数。该函数必须将从1到N的全部正整数顺序打印出来,每个数字占1行。裁判测试程序样例:#include <stdio.h>void PrintN ( int N );int main (){in...
2020-01-20 18:14:39 247 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人