现在位置: 首页 > eric发表的所有文章
  • 12月
  • 03日
10 结构体 ⁄ 共 219字 结构体(学生信息的添加、删除和排序)已关闭评论
结构体(添加和删除学生信息) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 #include <stdio.h> #include <string.h> #define N 5 typedef struct student { char name[10]; char sex; int score; } Student; int del_p(Student *q,char *a);   main() { int i=0,irest=N; Student s[N]= {0}; char delname[10]= {'\......
阅读全文
  • 12月
  • 03日
10 结构体 ⁄ 共 661字 结构体(学生成绩比较)已关闭评论
结构体的声明和使用,指针形式的结构体 有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩) 样例输入 2 131001003 blue 90 80 70 131001008 clan 80 70 60 样例输出 85 75 65 131001003 blue 90 80 70 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 #include <stdio.h>   struct student { char sno[20]; char name[2......
阅读全文
  • 11月
  • 28日
02 运算和数据类型 ⁄ 共 369字 浮点数(计算两点之间的距离)已关闭评论
浮点数(计算两点之间的距离) 输入4个浮点数x1, y1, x2, y2,输出平面坐标系中点(x1,y1)到点(x2,y2)的距离,输出结果保留3位小数。 样例输入 0 0 3.0 4.0 样例输出 5.000 1 2 3 4 5 6 7 8 9 10 #include <stdio.h> #include <math.h> /* 说明使用了math库中的函数,平方根 sqrt */ int main() { double x1,y1,x2,y2,distance; scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2); distance=sqrt( (x1-x2)*(x1-x2)+(y1-y2&......
阅读全文
  • 11月
  • 28日
01 初识C语言 ⁄ 共 706字 程序的基本结构DICO(A+B问题)已关闭评论
A+B问题虽然非常简单,却体现了评测系统中程序的基本结构。 C语言程序可以分为4个部分: 1 2 3 4 声明: Declaration 输入: Input 计算: Compute 输出: Output声明: Declaration 输入: Input 计算: Compute 输出: Output 这4个步骤的英文首字母构成 DICO 。 【A+B问题:求两数之和】 输入:两个整数 输出:这两个整数的和 样例输入 1 2 样例输出 3 1 2 3 4 5 6 7 8 #include<stdio.h> int main() { int a, b; scanf("%d%d", &a, &b); printf("%d\......
阅读全文
  • 11月
  • 27日
04 循环结构 ⁄ 共 167字 for循环(水仙花数)已关闭评论
for循环(水仙花数) 所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数字本身。 例如:153是一个水仙花数,因为153=1^3+5^3+3^3。 有两种思路来求水仙花数:分离和合成 假设 i 是三位整数,分别用整数 a、b、c来表示其百位数、十位数和个位数。 1 2 3 4 5 6 7 8 9 10 11 12 13 #include <stdio.h> int main() { int i,a,b,c; for (i=100; i<=999; i++) { a=i/100; b=i/10%10; c=i%10; if (i==a*a*a+b*b*b+c*c*c) printf......
阅读全文
  • 11月
  • 27日
12 其他内容 ⁄ 共 146字 使用C-Free 5.0调试代码已关闭评论
C-Free 4.0 功能有限,不支持调试。 以水仙花数为例,来调试代码。 for循环(水仙花数) 首先,将光标移到想设置断点的位置,例如第6行,从菜单【调试】->【设置/取消断点】中确认设置断点。 设置断点 设置断点条件 例如在调试水仙花数时,设置断点条件为 i==152,然后运行,等断点触发后,逐条运行。
阅读全文
  • 11月
  • 27日
06 函数 ⁄ 共 743字 经典递归问题:汉诺塔问题已关闭评论
汉诺塔问题是递归中的经典,通过简单的递归思想解决了复杂的问题。 汉诺塔问题 古代有一个梵塔,塔内有3个座A、B、C,开始时A座上有64个盘子,盘子大小不等,大的在下,小的在上。有一个老和尚想把这64个盘子从A座移到C座,但规定每次只允许移动一个盘,且在移动过程中在3个座上都始终保持大盘在下,小盘在上。在移动过程中可利用B座。 请编程序输出移动这些盘子的详细步骤。 汉诺塔问题 hanoi tower 这个问题的框架已经给你搭好了,只需要在 else 部分写三句话(3个动作,其中2个和 n-1 有关)就可以了。 1 2 3 4 5 6 7 8 9 1......
阅读全文
  • 11月
  • 27日
13 数据结构入门 ⁄ 共 409字 选择排序已关闭评论
选择排序(selection sort)是一种简单直观的排序算法。 选择排序(由小到大的顺序)的工作原理如下:首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 初始序列: 70 75 69 32 88 18 16 58 1 2 3 4 5 6 7 16 75 69 32 88 18 70 58 16 18 69 32 88 75 70 58 16 18 32 69 88 75 70 58 16 18 32 58 88 75 70 69 16 18 32 58 69 75 70 88 16 18 32 58 ......
阅读全文
  • 11月
  • 27日
13 数据结构入门 ⁄ 共 213字 冒泡排序已关闭评论
冒泡排序是最基本的排序方法,简单易懂。 冒泡排序流程展示PPT 冒泡排序 完成一轮冒泡,6个数共需要比较5次, 所以循环变量 j 的变化范围是 0~4。按照由小到大来排序,如果大数在前,就要交换到后面。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include <stdio.h> int main() { int a[6]= { 9,8,5,4,2,0 }; int j, t; for ( j=0; j<5; j++) if (a[j]>a[j+1]) { /* 如果大数在前,要交换两个数 */ ......
阅读全文
  • 11月
  • 26日
07 字符串入门 ⁄ 共 1432字 深入理解指针:字符串处理函数的实现已关闭评论
透过下面的程序可以加深对于指针的理解。 指针和数组 字符串长度函数 i_strlen 由于 strlen 在C标准函数库中已经存在,为了便于区分,函数名使用了前缀 i_ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #include <stdio.h> int i_strlen(char s[]) { int n = 0; while (s[n] != '\0') ++n; return n; }   int main() { char s[100]={ "China" }; printf("%d\n", i_strlen(s)); ......
阅读全文
  • 11月
  • 26日
08 指针 ⁄ 共 1498字 函数的传址调用(交换变量 swap)已关闭评论
传址调用就是传地址调用,也称为传引用调用。函数的另外一种调用方式是传值调用。 传值调用建立参数的一份拷贝并把它传给调用的函数,在调用函数中修改参数值的拷贝不影响原始的变量值;传引用调用允许调用函数修改原始变量的值。 如何写一个函数来交换两个整数变量呢? 1 2 3 4 5 void swap(int x, int y) { int t; t = x; x = y; y = t; }void swap(int x, int y) { int t; t = x; x = y; y = t; } 显然是不行的。 swap 并不知道参数的实际地址。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include......
阅读全文
  • 11月
  • 25日
05 数组 ⁄ 共 1435字 数组中的最大最小值(数组作为函数参数)已关闭评论
如何求出一组数中的最大最小值? 先来回忆一下如何求三个整数的最大值? 1 2 3 4 5 6 7 8 9 10 11 #include <stdio.h> int main() { int a, b, c, max; scanf("%d%d%d",&a,&b,&c); max = a; if (b>max) max = b; if (c>max) max = c; printf("%d\n", max); return 0; }#include <stdio.h> int main() { int a, b, c, max; scanf("%d%d%d",&a,&b,&c); ......
阅读全文