C
LiveAndLearn322
这个作者很懒,什么都没留下…
展开
-
奇数值结点链表(C语言实现)
习题11-7 奇数值结点链表(C语言实现)分析:没有头结点的链表操作太麻烦了。①注意第一个结点是奇数值结点的删除和其他结点的删除情况;②注意奇数链表第一个结点的创建和后续结点的创建。#include <stdio.h>#include <stdlib.h>struct ListNode { int data; struct ListNode *...原创 2020-04-07 20:47:11 · 880 阅读 · 0 评论 -
单链表结点删除(C语言实现)
习题11-8 单链表结点删除(C语言实现)分析:没有头结点,如果第一个结点是要删除的,则要单独处理。注意删除的是所有结点,返回为空。#include <stdio.h>#include <stdlib.h>struct ListNode { int data; struct ListNode *next;};struct ListNode *...原创 2020-04-07 20:12:49 · 1229 阅读 · 0 评论 -
递归实现顺序输出整数(C语言实现)
习题10-8 递归实现顺序输出整数(C语言实现)分析:和上一个题类似,当n只有一位数时输出,开始回退。#include <stdio.h>void printdigits( int n );int main(){ int n; scanf("%d", &n); printdigits(n); return 0;}/* 你...原创 2020-04-06 19:41:50 · 1973 阅读 · 0 评论 -
十进制转换二进制(C语言实现)
习题10-7 十进制转换二进制(C语言实现)分析:按照手算十进制转换为二进制的方法,除基取余。最后一个余数可能是1或者0,打印递归结束开始回退,输出余数的值,即n%2。#include <stdio.h>void dectobin( int n );int main(){ int n; scanf("%d", &n); dectobin...原创 2020-04-06 19:37:40 · 215 阅读 · 0 评论 -
判断满足条件的三位数(C语言实现)
习题10-1 判断满足条件的三位数(C语言实现)没有用math函数,所以代码有点长。int search( int n ){ int i,j,count=0,flag,t,a[10]={0}; for(i=101; i<=n; i++) { t=i; flag=0; for(j=0; j<10; j++) a[j]=0; while(t) { ...原创 2020-04-05 20:36:41 · 1920 阅读 · 0 评论 -
判断回文字符串(C语言实现)
习题8-8 判断回文字符串 (C语言实现)#include <stdio.h>#include <string.h>#define MAXN 20typedef enum {false, true} bool;bool palindrome( char *s );int main(){ char s[MAXN]; scanf("%s",...原创 2020-04-05 19:42:47 · 774 阅读 · 0 评论 -
报数(C语言实现)
习题8-4 报数(C语言实现)#include <stdio.h>#define MAXN 20void CountOff( int n, int m, int out[] );int main(){ int out[MAXN], n, m; int i; scanf("%d %d", &n, &m); CountOff(...原创 2020-04-05 19:24:36 · 2283 阅读 · 0 评论 -
数组循环右移(C语言实现)
习题8-3 数组循环右移(C语言实现)#include <stdio.h>#define MAXN 10int ArrayShift( int a[], int n, int m );int main(){ int a[MAXN], n, m; int i; scanf("%d %d", &n, &m); for ( i ...原创 2020-04-05 18:57:41 · 1202 阅读 · 0 评论 -
使用函数输出一个整数的逆序数(C语言实现)
习题6-6 使用函数输出一个整数的逆序数(C语言实现)#include <stdio.h>int reverse( int number );int main(){ int n; scanf("%d", &n); printf("%d\n", reverse(n)); return 0;}/* 你的代码将被嵌在这里 */i...原创 2020-04-04 20:17:34 · 2462 阅读 · 0 评论 -
使用函数验证哥德巴赫猜想(C语言实现)
习题6-5 使用函数验证哥德巴赫猜想(C语言实现)#include <stdio.h>#include <math.h>int prime( int p );void Goldbach( int n );int main(){ int m, n, i, cnt; scanf("%d %d", &m, &n); if ...原创 2020-04-04 20:07:22 · 5799 阅读 · 1 评论 -
使用函数输出指定范围内的Fibonacci数(C语言实现)
习题6-4 使用函数输出指定范围内的Fibonacci数(C语言实现)int fib( int n ){ int i,f1=1,f2=1,t; if(n==2 || n==1) return 1; for(i=3; i<=n; i++) { t=f2; f2=f1+f2; f1=t; } return f2;}void PrintFN( int m, i...原创 2020-04-04 19:54:34 · 2490 阅读 · 1 评论 -
使用函数统计指定数字的个数(C语言实现)
习题5-5 使用函数统计指定数字的个数(C语言实现)分析:最后一个测试点,当number和digit都为0时输出1int CountDigit( int number, int digit ){ int count=0; if(number < 0) number=-number; if(number == 0 && digit == 0) retu...原创 2020-03-31 11:11:56 · 1049 阅读 · 0 评论 -
数字金字塔(C语言实现)
练习5-3 数字金字塔(C语言实现)分析:注意控制输出格式。#include <stdio.h>void pyramid( int n );int main(){ int n; scanf("%d", &n); pyramid(n); return 0;}void pyramid( int n ){ int i,j,...原创 2020-03-30 20:59:36 · 7033 阅读 · 0 评论 -
通讯录排序(C语言)
习题9-5 通讯录排序(C语言)分析:将输入的数据存入结构体数组中,采用系统排序函数qsort 按照生日排序。#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct person{ char name[11]; char birthday[9]; char p...原创 2020-03-30 20:42:18 · 4769 阅读 · 0 评论 -
查找书籍(C语言实现)
习题9-4 查找书籍(C语言实现)分析:①注意书名可能有空格,不能用scanf输入,scanf遇空格和回车结束输入,因此用gets()输入;②用scanf输入价格后,回车还在缓冲区里面,循环用gets输入书名时,gets获得是回车字符串,因此要用getchar()消耗scanf后面的回车。#include <stdio.h>#include <string.h>...原创 2020-03-30 20:19:15 · 3936 阅读 · 3 评论 -
平面向量加法(C语言实现)
习题9-3 平面向量加法(C语言实现)分析:注意题目说(不能输出−0.0),浮点数和0的比较并不是用 n == 0,而是(n > -0.000001 && n <0.000001)即判断是否趋于0,因此当x,y为负的足够小时就会输出 -0.0。题目要求保留一位小数,因此当x,y 的绝对值大于0.05时会进位(四舍五入),小于0.05会舍掉。即大于-0.05,进位变成-...原创 2020-03-30 20:04:06 · 1733 阅读 · 0 评论 -
时间换算(C语言实现)
习题9-1 时间换算(C语言实现)#include <stdio.h>#include <stdlib.h>int main(){ int hh,mm,ss,n; scanf("%d:%d:%d",&hh,&mm,&ss); scanf("%d",&n); ss+=n; if(ss >= 60) { ss-=60...原创 2020-03-30 19:35:31 · 2600 阅读 · 0 评论 -
字符串排序(C语言实现)
习题8-7 字符串排序(C语言实现)方法一:选择排序#include <stdio.h>#include <string.h>void sort(char c[][81], int n){ int i,j,k; char t[81]; for(i=0; i<n-1; i++) { k=i; for(j=i+1; j<n; j++) ...原创 2020-03-30 13:29:21 · 36505 阅读 · 2 评论 -
字符串转换成十进制整数(C语言实现)
习题7-8 字符串转换成十进制整数(C语言实现)#include <stdio.h>#include <ctype.h>int main(){ int sum=0,flag1=0,flag2=0;//flag1标识符号,flag2标识第一个十六进制字符 char ch; while((ch=getchar()) != '#') { ch = tolowe...原创 2020-03-30 12:07:16 · 8815 阅读 · 3 评论 -
字符串替换(C语言实现)
习题7-7 字符串替换(C语言实现)分析: A - Z, B - Y, C - X …第1个英文字母替换为第26个英文字母,第二个英文字母替换为第25个英文字母…因此:第 i 个英文字母 替换为 第 (26 - i + 1) 个英文字母如果 ch 为大写字母, 则 ch = 26 - (ch - ‘A’ +1) +‘A’(ch - ‘A’ +1)计算该字母为第几个英文字母#inclu...原创 2020-03-30 11:33:07 · 8893 阅读 · 3 评论 -
获取系统时间(C语言)
#include <stdio.h>#include <time.h>#include <string.h>int main(){ int year,month,day,hour,minute,second; char weekday[10]={0}; char *wday[] = { "星期日", "星期一", "星期二", "星期三", "星期...原创 2020-03-29 10:40:13 · 132 阅读 · 0 评论 -
统计每个字符的出现次数(C语言)
统计每个字符的出现次数(C语言)输入包含字母和数字,要求统计每个字符的出现次数输入:AsdaAffid333778输出:a:3d:2f:2i:1s:13:37:28:1注意:输入是从文件中读入,输出是写入文件中#include <stdio.h>#include <string.h>#include <ctype.h>int mai...原创 2020-03-27 22:05:31 · 3946 阅读 · 2 评论 -
统计文件中的单词个数并输出(C语言)
统计文件中的单词个数并输出(C语言)分析:用单链表存储单词和单词的个数,从文件中读出一个单词,判断单词是否是第一次出现,如果是第一次出现就创建结点插入链表后,否则该单词数+1。#include <stdio.h>#include <ctype.h>#include <stdlib.h>#include <string.h>typedef ...原创 2020-03-27 21:45:05 · 2539 阅读 · 0 评论 -
输出对称素数(C语言)
输出对称素数(C语言)#include <stdio.h>#include <stdlib.h>#include <string.h>int isPrime(int n){ int i; if(n < 2) return 0; if(n == 2) return 1; if(n%2 == 0) return 0; for(i...原创 2020-03-27 21:01:22 · 1059 阅读 · 0 评论 -
十进制转换为二进制(C语言)
十进制转换为二进制(C语言)分析:按照笔算转换思路,除基取余,从最后一个余数到第一个余数逆向输出。#include <stdio.h>int main(){ int n,i=0; char str[100]={0};//按需设置数组大小 scanf("%d",&n); while(n) { str[i++]=n%2+'0'; n/=2; } fo...原创 2020-03-27 20:40:39 · 155 阅读 · 0 评论 -
动态一维数组打印杨辉三角(正三角形格式输出)
动态 一维数组打印杨辉三角(正三角形格式输出)分析:观察杨辉三角中的两行:1 4 6 4 11 5 10 10 5 1第二行的5等于上一行的4+1;第二行的第一个10等于上一行的6+4;第二行的第二个10等于上一行4+6…因此用一维数组从上一行后面依次向前两两相加就得到下一行的数,第n行应该加n-1次输出,最后一列直接输出1。这里假设不知道输出的行数,所以用...原创 2020-03-23 20:37:06 · 745 阅读 · 0 评论 -
筛选法筛出100以内的素数
筛选法筛出100以内的素数如图(筛选50以内的素数),从第一个素数2开始筛选,2的倍数一定不是素数;以此类推,3的倍数也不是素数。当筛选到4的时候,由于4不是素数,所以可以跳过,继续筛选5的倍数。筛选到什么时候结束呢?为了节省时间开销,筛选到根号50取整就可以结束了,因为一个数n的最大两个因子就是根号n了,其他因子就是一大一小或者一小一大,例如35,53,35已经排出了,那就不需要再判断53啦。...原创 2020-03-23 14:12:21 · 354 阅读 · 0 评论 -
C语言,rand()函数生成随机验证码
C语言,生成随机验证码分析:srand()、rand()函数在头文件<stdlib.h>中。srand()函数生成随机数种子,time()为系统时间,每次不能设置相同的种子,不然产生的随机数相同,因此选择变化的系统时间作为参数。由于CPU运行速度很快,所以主函数中用Sleep()函数休眠1s,避免前后时间间隔太短,前后种子值相同,生成相同的随机数。#include <stdi...原创 2020-03-22 21:11:15 · 2241 阅读 · 0 评论 -
单链表查找倒数第K个节点
单链表查找倒数第K个节点,并输出其值分析:p、q两个指针指向表头结点,p向前移动K个位置后q向前移动,当p结点移到尾结点时,q的next指针域所指结点即为所求结点;若不存在k个结点,则当p指向尾结点时,K不为0。#include <stdio.h>#include <stdlib.h>typedef struct node{ int data; struct ...原创 2020-03-22 20:35:21 · 361 阅读 · 0 评论 -
砝码称重
题目:有一个天平,有六种砝码,分别重1,2,3,5,10,20克,每种砝码各有5,3,2,2,1,1个,计算天平能称出的重量及种类循环暴力#include <stdio.h>int main(){ int a[58]={0};//数组下标为可称重量0-57 int w[6]={1,2,3,5,10,20},n[6]={5,3,2,2,1,1}; int i[6]={0},...原创 2020-03-22 19:57:43 · 471 阅读 · 0 评论 -
找鞍点(C语言)
习题7-5 找鞍点(C语言)#include <stdio.h>int main(){ int a[6][6]={0},i,j,k,n,max,maxj; int flag=0; scanf("%d",&n); for(i=0; i<n; i++) for(j=0; j<n; j++) scanf("%d",&a[i][j]);...原创 2020-03-27 20:31:59 · 1867 阅读 · 2 评论 -
求一批整数中出现最多的个位数字 (C语言)
习题7-2 求一批整数中出现最多的个位数字 (C语言)#include <stdio.h>void count(int a[], int n){ while(n) { a[n%10]++; n/=10; }}int main(){ int n,i,flag[10]={0},a[1000]={0}; int max=0; scanf("%d",&am...原创 2020-03-27 19:37:56 · 1378 阅读 · 0 评论 -
求e的近似值(C语言实现)
练习4-7 求e的近似值(C语言实现)分析:求阶乘函数的返回值应为double,如果为int,计算结果太大,越界。#include<stdio.h>double factorial(int n){ double t=1; int i; for(i=2; i<=n; i++) t*=i; return t;}int main(){ int n,i=1;...原创 2020-03-26 21:32:46 · 3307 阅读 · 1 评论 -
统计一行文本的单词个数(C语言实现)
习题6-8 统计一行文本的单词个数 (C语言实现)分析:判断单词的开始,如果前一个为空格,后面不为空格,则为一个单词的开始。#include<stdio.h>int main(){ int flag=0,i,count=0; char c[1000]={0}; gets(c); for(i=0; c[i]; i++) { if(c[i] == ' ')//空格 ...原创 2020-03-26 20:55:26 · 11739 阅读 · 5 评论 -
打印菱形图案(C语言实现)
习题4-9 打印菱形图案(C语言实现)分析:分上下两个三角形打印#include <stdio.h>int main(){ int n,i,j,k; scanf("%d",&n); n=n/2+1; for(i=0; i<n; i++)//控制行数,上三角 { for(j=1; j<n-i; j++)//控制前置空格,第n行前置空格为n...原创 2020-03-24 22:08:27 · 8276 阅读 · 0 评论 -
高空坠球(C语言实现)
习题4-8:高空坠球(C语言实现)分析:每一次反弹高度为原来的一半,第一次落地是最高处掉下来的距离,其他n-1次落地,在空中的距离是反弹距离*2。n次落地只反弹n-1次。#include <stdio.h>int main(){ int m,n,i; double sum=0,t=0; scanf("%d%d",&m,&n); if(n == 0...原创 2020-03-24 21:53:05 · 5202 阅读 · 0 评论 -
水仙花数(C语言实现)
PTA(Basic Level) 习题4-6:水仙花数(C语言实现)分析:系统的pow函数最后一个用例运行超时,所以要自己写一个求幂次的函数。一个数各位的n次方累加,最后和该数比较大小,相等就输出。#include <stdio.h>int power(int a, int n){ int i,t=a; for(i=1; i<n; i++) a=a*t; ret...原创 2020-03-24 21:22:40 · 831 阅读 · 0 评论 -
奇数阶魔方阵(动态数组)
奇数阶魔方阵(动态数组)奇数阶魔方阵:各行、各列即对角线上元素之和相等(罗伯特法—爬楼梯法)算法说明:(i、j分别代表行列数,从0开始,n为行数)1、将 1 填在第一行的中间;2、向斜向上爬楼梯,即 i–,j++;3、如果 i<0且j=n, i+=2, j–;4、如果 i<0 ,则 i=n-1,如果 j=n, j=0;5、如果该位置已经存储了不为0的数了,则i+=2, j...原创 2020-03-23 22:01:23 · 251 阅读 · 0 评论