C语言
minghan13
啊哦
展开
-
3.从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,然后输出到一个 磁盘文件test中保存,输人的字符串以结束。
注意:有可能有换行的输入# include "stdio.h"# include "string.h"# include "stdlib.h"int main(){ FILE *fp; char ch; int cnt = 0; if ((fp = fopen("test", "w")) == NULL) { printf("1文件test打开错误\n"); exit(0); } do { cnt++; ch = getchar(); if (ch .原创 2020-05-22 20:38:29 · 3187 阅读 · 0 评论 -
12.建立一个链表,每个结点包括:学号、姓名、性别、年龄。输人一个年龄,如果链表 中的结点所包含的年龄等于此年龄,则将此结点删去。
主要思路:1,创建链表2,判断输入的年龄是否存在,存在就删去3,输出处理后的链表具体处理:1,创建链表:链表 = 头指针 + 节点所以先创建节点:typedef struct node{ int sid; char name[20]; char sex[10]; int age; struct node* next;}node;然后把节点链接起来,并且让头指针指向第一个节点,并返回头指针;代码:node *creatlink(int n)//n是节点个数{ nod.原创 2020-05-21 15:57:55 · 9676 阅读 · 0 评论 -
11.有两个链表a和b,设结点中包含学号、姓名。从a链表中删去与b链表中有相同 学号的那些结点。
主要思路:1,先创建两个链表2,删去a链表中与b链表中有相同学号的节点3,打印处理后的a链表处理方法:1 :创建链表:链表 = 头指针 + 节点所以先创建节点typedef struct node{ int sid; char name[20]; struct node* next;}node;然后把节点串起来,并且把第一个节点的地址给头指针就成链表了代码: node* creatlink(int n) //n是链表长度,也就是节点个数,函数返回头指针 { node.原创 2020-05-14 16:51:40 · 2889 阅读 · 2 评论 -
10.已有a,b两个链表,每个链表中的结点包括学号、成绩。要求把两个链表合并,按 学号升序排列。
我把成绩看成了姓名,不过对题目没什么影响;主要思路:1.先创建两个链表;2.把两个链表合并;3.把合并后的链表排序;4.输出排序后的链表具体处理:1.如何创建链表:链表 = 头指针 + 节点所以:首先,定义节点typedef struct node{ int sid; char name[20]; struct node* next;}node;然后就把节点连起来,形参n是要创建的链表长度,函数返回头指针; node* creatlink(int n) { nod.原创 2020-05-13 21:18:59 · 5761 阅读 · 3 评论 -
求最大公因数和最小公倍数(详解,简洁方便)
最大公约数:用欧几里得辗转相除法,两个数a,bwhile(b > 0){t = a % b;a = b;b = t;}循环结束后的a 就是最大公约数里 a = 5, b = 8①b > 0 进入循环t = 5 % 8 = 5;a = b = 8;b = t = 5;②b = 5 > 0进入循环t = 8 % 5 = 3;a = b = 5;b = t = 3;③b = 3 > 0进入循环t = 5 % 3 = 2;a = b = 3;b = t原创 2020-05-12 11:49:03 · 1097 阅读 · 0 评论