c语言

C语言寒假大作战04

风流意气都作罢 提交于 2020-02-11 14:43:47
1. 本周作业头 这个作业属于哪个课程 班级作业链接 这个作业要求在哪里 作业要求的链接 这个作业的目标 在之前的基础上加上答案 作业正文 https://www.cnblogs.com/Litinga/p/12294612.html 其他参考文献 学长录制的视频 2. 设计思路和遇到的问题 心路历程: 平淡,内心毫无波动-->一年级的较为简单-->二年级的除法有点问题-->借鉴别人的博客-->写完了 程序设计思路: 在上次作业的基础上,把加上答案即可 遇到的问题: 二年级的除法不能用int,而是double。 3. 程序结果截图 4.程序代码截图 #include<stdio.h> #include<stdlib.h> void yinianji() { printf("执行操作\n"); printf("\n"); printf("现在是一年级题目:\n"); printf("请输入生成题目数目:\n"); int x; scanf("%d",&x), printf("执行操作:\n"); for(int i;i<10;i++) { int a = rand()%2; int b = rand()%11; int c = rand()%11; if(a==1) printf("%d + %d = %d\n",b,c,b+c); else printf("%d - %d = %d

C语言寒假大作战03

限于喜欢 提交于 2020-02-11 14:43:33
这个作业属于哪个课程 班级链接 这个作业要求在哪里 作业链接 这个作业的目标 熟悉使用git命令,理解代码用途 其他参考文献 C语言rand和srand用法详解 作业正文 本篇博客 1.1 设计思路和遇到的问题 设计思路:用for循环取十道题目,符号用rand的取值来随机选取,随机数也同理用rand生成,用srand和时间来取不同的随机数,添加到已有菜单中。 遇到的问题:开始用int来添加rand函数,导致十个题目完全相同,后来改用直接取rand,解决问题。 1.2程序结果截图 1.3程序代码 #include<stdio.h> #include <stdlib.h> #include <time.h> void one() { printf(":)\n"); printf("\n"); printf("现在是一年级题目:\n"); printf("操作完成\n\n"); srand((int)time(0)); int i; for(i=1;i<=10;i++) { if(rand()%2==1) { printf("%d + %d =__\n",rand() % (10),rand() % (10)); } else printf("%d - %d =__\n",rand() % (10),rand() % (10)); } } void two() { printf(":)

leetcode 54 螺旋矩阵 C语言实现

无人久伴 提交于 2020-02-11 14:33:18
题目 leetcode 54 给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。 示例 1: 输入: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ] 输出: [1,2,3,6,9,8,7,4,5] 示例 2: 输入: [ [1, 2, 3, 4], [5, 6, 7, 8], [9,10,11,12] ] 输出: [1,2,3,4,8,12,11,10,9,5,6,7] 代码 int * spiralOrder ( int * * matrix , int matrixSize , int * matrixColSize , int * returnSize ) { * returnSize = 0 ; if ( matrixSize == 0 ) return 0 ; int len = matrixSize * ( * matrixColSize ) ; int * arr = ( int * ) malloc ( sizeof ( int ) * len ) ; //左、右、上、下边界,dir方向 int l = 0 , r = * matrixColSize - 1 , s = 0 , x = matrixSize - 1 , dir = 0 , k = 0 ; while ( l <

C语言寒假大作战03

北城余情 提交于 2020-02-11 14:14:40
2.2.1 作业头: 问题 回答 这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/SE2019-2/ 这个作业的要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2019-2/homework/10267 我在这个课程的目标是 随机生成口算题 这个作业在哪个具体方面帮助我实现目标 使用函数、rand()语句来完成菜单程序 参考文献 《C语言程序设计》(第三版)&百度 2.2.2 设计思路和遇到的问题 此次作业是建立在上次作业基础上,额外增加三个函数以达到随机生成口算题的目的; 审题时作业的思维构架其实在脑海中已有呈现,框架出来以后主要是想里面需要什么东西; rand()函数是随机生成数,一开始运行总出现同样的结果,后来发现是未初始化rand()的值,百度后发现还需调用srand函数; 其实三个函数大同小异,只是定义字符和输出有些许变化;(字符大小有所改变) 2.2.3 程序结果截图 主界面 : 输入1后输入10执行结果 : 输入2后输入10执行结果 : 输入3后输入10执行结果 : 结束界面 : 2.2.4 程序代码 2.2.5 Gitee上传截图与链接 gitee链接: https://gitee.com/xiongdadadada/Xiongdadada 来源: https://www

C语言寒假大作战03

爱⌒轻易说出口 提交于 2020-02-11 13:55:19
这个作业属于哪个课程 班级的链接 这个作业要求在哪里 作业要求 这个作业的目标 根据上次作业,添加使用rand()的使用 作业正文 使用上次作业的菜单框架,并在其基础上增加各年级题目操作函数 其他参考文献 随机数rand 2.2.2 设计思路和遇到的问题 :设计思路 使用上次作业的菜单框架,并在其基础上增加各年级题目操作函数 遇到的问题 比较陌生 2.2.3 程序结果截图 2.2.4程序代码 #include <stdio.h> #include <stdlib.h> #include <time.h> void menu(); void help(); void one();void operation_1(); void two();void operation_2(); void three();void operation_3(); void error(); int main() { int opt=1,n; printf("==========口算生成器==========\n"); printf("欢迎使用口算生成器:\n"); printf("\n"); help(); while(opt!=0) { menu(); printf("请输入操作> "); scanf("%d",&opt); printf("<执行操作:)\n"); printf("\n");

C语言寒假大作战03

佐手、 提交于 2020-02-11 13:07:34
3.1作业头 这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/SE2019-2 这个作业的要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2019-2/homework/10267 这个作业的目标 使用switch编写菜单程序,使用rand函数来产生随机数,并以规律进行排列 作业正文 https://www.cnblogs.com/tizipei/p/12272595.html 参考文献 https://www.runoob.com/cprogramming/c-function-rand.html 3.2设计思路和遇到的问题 设计思路 对菜单程序函数调用图进行分析,确定函数框架 对头文件 stdlib.h 和 time.h 中定义的函数了解,对定义/声明的宏进行运用 设定输出值的范围 遇到问题 对rand函数怎样产生随机数不了解 不知名原因,无error程序终止 3.3程序结果截图 3.4程序代码 3.5Gitee上传截图与链接 链接 https://gitee.com/tuzipei20199410/battle_03 来源: https://www.cnblogs.com/tizipei/p/12272595.html

C++对于C故有问题的改进

狂风中的少年 提交于 2020-02-11 12:06:37
C++继承了所有的C特性,并且提供了更丰富的语法和特性(OOP支持、模板支持等),并且拥有和C语言同样出色的运行效率。针对C语言的固有问题,C++做出了如下的升级: 所有变量都可以在需要使用时再定义 (C99支持) 忽略register关键字,仍然可以取得register变量的地址 不允许定义多个同名的全局变量 (C允许这样做,并且这些变量最终会被链接到同一块内存上) struct关键字现在可以用来定义一个全新的类型 (C只是定义一个标识符,不是一种类型) 函数声明中的参数列表为空则表示void (在C中,可以传入任意多的参数) 所有的标识符都必须显示声明类型 (在C中,默认类型是int) 一、所有变量都可以在需要使用时再定义 在C99标准之前,C函数中的所有变量定义都必须要写在函数的开头: int main() { return 0; } void func() { int a, b, i; // 运算代码... a = 10; // 运算代码... b = 20; // 运算代码... for(i = 0; i < 10; i++) { // 运算代码... } } 这样做的问题在于:如果函数非常复杂,需要使用的变量很多,那么很难根据上下文来判断变量的含义,对于代码的书写和阅读都很不利。因此,自C99标准开始,C支持在变量需要使用时再定义和初始化: void func() {

C++ const详解

半城伤御伤魂 提交于 2020-02-11 12:01:34
c++中 const 关键字被用来表示一种 "常量属性" ,即变量的值不可被修改。这个关键字也是从C语言中继承来的,但是C语言的 const 由于无法保证运行时变量的常量属性,所以C++对此引入了常量表来进行升级; const 应用于指针的用法和特性几乎和C语言一致;同时,C++也针对引用类型提供了 const 关键字支持。为了支持OOP,const也可以用来修饰方法。 一、用于普通对象的 const 众所周知,C语言中的修饰普通对象的 const 仅能维持编译期的值不变性,但是运行时值依然是可变的: int main(int argc, char *argv) { const int a = 0; a = 10; // (编译期的const保持)编译错误,因为试图修改一个常量。 // (运行时const属性失效) int *pa = (int *)&a; *pa = 20; // 正确,此时a的值被修改为20,失去常量属性。 return 0; } 为了维持运行时的 const 语义,c++引入了常量表来记录const对象的名称和值,并将之后所有对const对象的访问修改为访问常量表中的值,以此保证const对象始终如一的常量属性。同时为了保持向下兼容C,C++采取另外一种常量对象的内存分配方式,即: 代码中的const常量并不会立刻分配内存,只有当需要该对象的地址时

C语言寒假大作战03

China☆狼群 提交于 2020-02-11 11:59:29
1.作业头 这个作业属于哪个课程 < 班级的链接 > 这个作业要求在哪里 作业要求 > 这个作业的目标 作业正文 使用上次作业的菜单框架,并在其基础上增加各年级题目操作函数 其他参考文 随机数rand ,百度 2.设计思路和遇到的问题 请写上你的心路历程和程序设计思路,并在其中写下你遇到的问题 心路历程: 刚开始看着题目的时候,还是有点慌,但是冷静下来又一次翻看寒假作业看学长的视频以及百度,信心有逐渐拾回来了 思路: 1,一边定义所有的函数(menu, help error,question01,question02,question03,firstgrade,secondgrade,thirdgrade,主函数main)一边解决问题 2,在解决menu,help,error等时直接打印题目包含的内容;在解决(question01,question02,question03)几个函数时运用数组和rand函数随机生成题目的个数;在解决(firstgrade,secondgrade,thirdgrade)时表述以及到达某年级,请输入题目生成个数并且规定生成题目的类型最后换行并且回到菜单栏;在解决主函数main时运用while语法和swtich语法实现用户进入计算器的界面模式。 遇到的问题: 1.开始忘记了定义opt这个函数,出现编译错误 2.后来在解决二年级的乘除问题生成时

C语言指针总结

╄→尐↘猪︶ㄣ 提交于 2020-02-11 07:15:44
C语言中的精华是什么,答曰指针,这也是C语言中唯一的难点。 C是对底层操作非常方便的语言,而底层操作中用到最多的就是指针,以后从事嵌入式开发的朋友们,指针将陪伴我们终身。 本文将从八个常见的方面来透视C语言中的指针,当然,还有其他没有具体提到的方面,像指针表达式、指针安全等问题,以后有机会我再慢慢补充。 还是那句老话,重要的是实践,多写代码,才是学好C语言的关键。 1.指针类型分析 分析指针,可以从变量名处起,根据运算符优先级结合,一步一步分析. int p; //这是一个普通的整型变量 int *p; //首先从P处开始,先与*结合,所以说明P是一个指针,然后再与int结合,说明指针所指向的内容的类型为int 型.所以 P是一个返回整型数据的指针 int p[3]; //首先从P处开始,先与[]结合,说明P 是一个数组,然后与int结合,说明数组里的元素是整型的,所以 P是一个由整型数据组成的数组 int *p[3]; //首先从P处开始,先与[]结合,因为其优先级比*高,所以P是一个数组,然后再与*结合,说明数组里的元素是指针类型,然后再与 int结合,说明指针所指向的内容的类型是整型的,所以是一个由返回整型数据的指针所组成的数组 int (*p)[3]; //首先从P处开始,先与*结合,说明P是一个指针然后再与[]结合(与"()"这步可以忽略,只是为了改变优先级)