c语言

C语言1004成绩排名

南楼画角 提交于 2020-02-17 23:06:55
1004 成绩排名 读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。 输入格式: 每个测试输入包含 1 个测试用例,格式为 第 1 行:正整数 n 第 2 行:第 1 个学生的姓名 学号 成绩 第 3 行:第 2 个学生的姓名 学号 成绩 … … … 第 n+1 行:第 n 个学生的姓名 学号 成绩 其中姓名和学号均为不超过 10 个字符的字符串,成绩为 0 到 100 之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。 输出格式: 对每个测试用例输出 2 行,第 1 行是成绩最高学生的姓名和学号,第 2 行是成绩最低学生的姓名和学号,字符串间有 1 空格。 输入样例: 3 Joe Math990112 89 Mike CS991301 100 Mary EE990830 95 输出样例: Mike CS991301 Joe Math990112 #include<stdio.h> int main(){ struct student{ char name[16]; char num[16]; int grade; }; / 用数组定义太麻烦,一个整体用结构体,结构体中数组大小要合适,不能放不下,也不要占太多空间 / int a,i; struct student max,min,temp; max.grade=0; min

【C语言】- 指向一维数组元素的指针!学习不需要带口罩,只要带脑子

 ̄綄美尐妖づ 提交于 2020-02-17 22:47:46
前面我们已经学习了指针,如果指针存储了某个变量的地址,我们就可以说指针指向这个变量。数组及其数组元素都占有存储空间,都有自己的地址,因此指针变量可以指向整个数组,也可以指向数组元素。 一、用指针指向一维数组的元素 输出结果: 说明已经通过指针间接修改了数组元素的值,跟指向一个普通int类型变量是一样的。 由于数组名代表着数组的首地址,即a == &a[0],因此第8行代码等价于: // 让指针指向数组的第0个元素 p = a; 内存分析图如下,一个指针变量占用2个字节,一个int类型的数组元素占用2个字节 二、用指针遍历数组元素 1.最普通的遍历方式是用数组下标来遍历元素 输出结果: 2.接下来我们用指针来遍历数组元素 先定义一个指针,指向数组的第一个元素 p的值是a[0]的地址,因此,现在我们利用指针p只能访问数组的第0个元素a[0],用*p就可取出a[0]的值1。要想访问其他元素,就必须拿到元素的地址,可以发现每个元素的地址差值为2,因为在16位编译器环境下,一个int类型的变量占用2个字节。现在只是知道a[0]的地址值为p,怎么根据a[0]的地址获取其他元素的地址呢?其实非常简单,p+1就是a[1]的地址。注意了,这里的p+1代表着p的值加2,并不是p的值加1,比如p的值为ffc3,p+1则为ffc5,而非ffc4。依次类推,p+2就是a[2]的地址ffc7,p+3就是a[3

航电OJ C语言-实验6

二次信任 提交于 2020-02-17 22:42:25
1. (20分) 6.2 写一个判断素数的函数,在主函数中输出1~100间的素数信息 输入描述 无 输出描述 输出1~100之间所有的素数,中间用空格隔开 输入样例 无 输出样例 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 用户代码 # include <stdio.h> int main ( ) { int i , j , k ; for ( i = 1 ; i <= 100 ; i ++ ) { k = 0 ; for ( j = 1 ; j <= i ; j ++ ) { if ( i % j == 0 ) k ++ ; } if ( k == 2 ) printf ( "%d " , i ) ; } return 0 ; } 最后保存时间: 2019-11-27 10:56:26 本题得分:20分(1/1) 查看最新评判结果 2. (20分) 6.3 设a,b,c为三个大于零的正整数,计算并输出下列不定方程组解的个数Number以及满足此条件的所有a,b,c之和sum。 题目描述 设a,b,c为三个大于零的正整数,计算并输出下列不定方程组解的个数Number以及满足此条件的所有a,b,c之和sum。 不定方程组为:(1) a+b+c=13 (2)a-c=5,且(a,b,c>0)

C语言之逗号运算符

南笙酒味 提交于 2020-02-17 20:06:05
概念:逗号运算符,多个表达式可以用逗号分开,但整个表达式的值是最后一个表达式的值。 平时在写程序的时候,我们常用while,for,但是逗号运算符是for的一种扩展,以便在循环的开头包含更多的表达式。下面就以案例分析问题。例如:打印一类邮资程序,在写书本,邮资首重为40美分一份,续重20美分一份。代码案例和分析如下: 代码案例: #include <stdio.h> #include <stdlib.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main(void) { /*(FIRST_OZ,NEXT_OZ)为邮资*/ const int FIRST_OZ = 46,NEXT_OZ = 20; /**/ int ounces,cost; for(ounces = 1,cost = FIRST_OZ;ounces <= 20;ounces++,cost += NEXT_OZ){ printf("%5d $%2.2f\n",ounces,cost / 100.0); } return 0; } 运行结果: 如上的代码案例中可以看出,它扩展了for,说明它具有一定的灵活性,它的应用范围广,没有局限于for

C语言寒假大作战04

丶灬走出姿态 提交于 2020-02-17 16:58:33
问题 答案 这个作业属于哪个课程 班级链接 这个作业要求在哪里 作业要求 这个作业的目标 学习使用%g,区分%g与%d 作业正文 作业正文 参考文献 %g与%d 1. 设计思路和遇到的问题 1.1 心路历程 看到题目时,噢,就是加一个答案嘛,应该挺简单的 看到参考资料后,%g?不简单 写的过程很崩溃 写完后,代码真长 1.2 设计思路 定义函数 使用while语句、switch语句、for语句、if-else语句 运用了一种输出格式%g 1.3 遇到的问题 %6g写成了%.6g ==写成了= 2. 程序结果截图 一年级题目 二年级题目 三年级题目 帮助信息 错误指令 结束程序 3. 程序代码 4. Gitee上传截图与链接 4.1 Gitee截图 4.2 链接 https://gitee.com/yinsirui20199395/yinsirui 来源: https://www.cnblogs.com/ysrysr/p/12321614.html

C语言实现学生管理系统

北城以北 提交于 2020-02-17 16:49:25
#include <stdio.h> #include<string.h> #define N 3 struct students { /* 成员变量:姓名、性别、学号、三门成绩等... */ char name[100]; char sex[100]; char on[100]; double Mark1; double Mark2; double Mark3; }; struct students stu[100]; // 对此结构体进行操作 int k = 0; //全局变量作为累加项 void student_enter();//函数声明:学生入录 void seek();//函数声明:查询所有学生信息 void search_For();//函数声明:通过学号或者姓名查询学生 void delete_stu();//函数声明:删除所有学生 void average();//函数声明:平均分统计 void Total_score();//函数声明:总分统计 void Help();//函数声明:帮助文档 void revise();//函数声明:修改信息 void main() { int n = 0, i = 1; printf("\t\t\t\t\t---------------------------------------\n"); printf("\t\t\t\t

C语言中的运算符

夙愿已清 提交于 2020-02-17 15:31:33
C语言运算符百度百科参考 运算符优先级 优先级 运算符 运算 结合关系 举例 1 ++ 后缀递增 自右向左 a++ 1 - - 后缀递减 自右向左 a- - 2 ++ 前缀递增 自右向左 ++a 2 - - 前缀递减 自右向左 - -a 3 + 单目不变 自右向左 a*+b 3 - 单目取负 自右向左 a*-b 4 * 乘 自左向右 a*b 4 / 除 自左向右 a/b 4 % 取余 自左向右 a%b 5 + 加 自左向右 a+b 5 - 减 自左向右 a-b 6 = 赋值 自右向左 a=b 6 += 复合赋值 自右向左 a+=b 6 -= 复合赋值 自右向左 a-=b 6 *= 复合赋值 自右向左 a*=b 6 /= 复合赋值 自右向左 a/=b 6 &= 复合赋值 自右向左 a&=b 复合赋值运算符的计算 a+=b 等价于 a=a+b a-=b 等价于 a=a-b a*=b 等价于 a=a*b a/=b 等价于 a=a/b a&=b 等价于 a=a&b 前缀和后缀 表达式 运算 表达式的值 count++ 给count加1 count原来的值 ++count 给count加1 count+1以后的值 count- - 给count减1 count原来的值 - -count 给count减1 count-1以后的值 一个有趣的计算 //猜猜输出的值是多少 int b = 9 ;

C语言的工具集

做~自己de王妃 提交于 2020-02-17 13:57:13
1. lint可以对c程序进行更加广泛的错误分析,lint不是缩写,它的命名是因为它像在程序中“吹毛求疵”,现在许多linux发行版都包括了它的增强版splint(Secure Programming Lint),这一工具可以在网站www.splint.org免费下载,或https://github.com/ravenexp/splint上查看源码。 2.cppcheck,一个c/c++综合检测工具。 网址:cppcheck.net,帮助文件:http://cppcheck.sourceforge.net/manual.pdf 3. gcc,gnu出品的c编译器。 4. clang,LLVM出品的c编译器。 5. gdb,gnu出品的c调试器。 6. make,协助编译大型工程。 7. cmake,跨平台的make,有时候你会选择在一个强劲的平台编译一个便携平台的软件,用于加快编译速度。 来源: https://www.cnblogs.com/litifeng/p/6552121.html

C语言--两数之和

天涯浪子 提交于 2020-02-17 10:25:03
两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素. 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] int * twoSum ( int * nums , int numsSize , int target , int * returnSize ) { int i , j ; int a , b ; int * array = ( int * ) malloc ( 2 * sizeof ( int ) ) ; for ( i = 0 ; i < numsSize ; i ++ ) { a = target - nums [ i ] ; //nums[i] = 0; for ( j = 0 ; j < numsSize ; j ++ ) { if ( nums [ j ] == a && i != j ) { array [ 0 ] = i ; array [ 1 ] = j ; } } } * returnSize = 2 ; return array ; } 来源: CSDN 作者:

C语言的编译预处理

本秂侑毒 提交于 2020-02-17 09:27:42
C语言的编译预处理命令主要包括:宏定义、文件包含和条件编译。预处理命令均以“#”开始,命令的结尾没有分号,每条预处理命令必须占用单独一行。 1.宏定义 (1) 无参宏定义 无参宏定义的一般形式如下: #define 宏名 字符序列 如果源程序中使用了宏定义,编译预处理过程中,自动把源程序中出现的所有“宏名”替换为“字符序列”,这是一个纯文本替换,也称为宏替换。 例如下面定义了3个无参宏名: #define PI 3.14 #define R 10 #define AREA PI R R (2) 有参宏定义 有参宏定义的一般形式如下: #define 宏名(参数表) 字符序列 有参宏定义在进行宏替换时,源程序出现宏名的地方都使用字符序列替换,替换时使用宏引用中的实参去替换宏定义中的形参。 例如,如下定义了一个有参的宏名。 #define MUL(a,b) (a)*(b) 源程序中可以使用如下语句使用有参的宏: int x=3, y=4, z; z=MUL(x,y); 注意:通常需要在有参宏定义时,字符序列中参数要加上圆括号,以免进行宏替换时出现错误,如z=MUL(x+3,y-1) 10,进行宏替换后的语句为:z=x+3 y-1*10;。 2、文件包含 文件包含也是一种编译预处理命令,其作用是把被包含的文件的内容全部引入到使用文件包含命令的源程序文件中。文件包含命令有以下2种形式: