
C
Dev-Liangjian
一个正在成长的小菜鸟
展开
-
素数求和
题目内容:我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。 现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。输入格式:两个整数,第一个表示n,第二个表示m。输出格式:一个整数,表示第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。输...原创 2018-03-30 09:10:32 · 5312 阅读 · 2 评论 -
C实现单词长度
题目内容: 你的程序要读入一行文本,其中以空格分隔为若干个单词,以‘.’结束。你要输出这行文本中每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如“it’s”算一个单词,长度为4。注意,行中可能出现连续的空格。 输入格式: 输入在一行中给出一行文本,以‘.’结束,结尾的句号不能计算在最后一个单词的长度内。 输出格式: 在一行中输出这...原创 2018-04-27 17:21:48 · 868 阅读 · 0 评论 -
PTA 厘米换算英尺英寸
如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。输入格式: 输入在一行中给出1个正整数,单位是厘米。输出格式: 在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开。 输入样例: ...转载 2018-05-13 22:47:48 · 18841 阅读 · 11 评论 -
strlen strcmp strcpy strcat的实现
size_t strlen(const char *str) 计算字符串str的长度,但不包括终止空字符//尝试实现strlen 的功能 int mystrlen(const char * s){ int index = 0; while( s[index] != '\0' ){ index++; } return index;}in...原创 2018-06-04 15:56:19 · 249 阅读 · 0 评论 -
字符串对比
题目内容:题目说起来很简单,你会读到两个字符串,每个字符串占据一行,每个字符串的长度均小于10000字符,而且第一个字符串的长度小于第二个字符串的。你的程序要找出第一个字符串在第二个字符串中出现的位置,输出这些位置,如果找不到,则输出-1。注意,第一个字符的位置是0。 注意,第一个字符串在第二个字符串中的位置可能不止一处。 注意,字符串中可能含有空格。 注意,两个字符串的长度一定大于...原创 2018-06-04 18:59:53 · 412 阅读 · 0 评论 -
C语言结构体小练习
#include <stdio.h>#include <stdbool.h>/* 功能:根据当天日期输出明天的日期 时间:2018-06-05 //此程序无输入错误检测*/ //定义一个日期类型 形如2018-06-05 struct date{ int year; int month; int day;};...原创 2018-06-06 08:58:21 · 2297 阅读 · 0 评论 -
C语言的字符串数组
在C语言当中,字符串数组可以使用: char a[] [10]; 或者 char *a[]; 表示 第一种表示方式固定了每个字符串的最大大小。第二种没有字符串的大小限制。#include <stdio.h>#include <string.h>//该程序的功能是 输入阿拉伯数字的月份数 输出英文月份int main(){ //一个字符串...原创 2018-05-30 21:20:20 · 210416 阅读 · 6 评论 -
C语言结构体小练习2
#include &lt;stdio.h&gt;struct time{ int hour; int minutes; int seconds;};//获得当前时间的下一秒struct time timeUpdate(struct time now);int main(){ struct time testTime[5] = { {...原创 2018-06-07 16:14:24 · 270 阅读 · 0 评论 -
利用有穷自动机去除C语言代码行注释(//)以及块注释(/* */)
一、 程序设计题目与说明 利用有穷自动机去除C语言代码行注释(//)以及块注释(/* */) 该有穷自动机的状态转换图如下: 二、 核心代码(或全部代码)#include<stdio.h>#include<stdlib.h>/*The encoding of this file is GB2312(Simplified)*//*Please ...原创 2018-06-18 17:54:27 · 2911 阅读 · 3 评论 -
利用递归下降分析方法完成语法分析
一、 程序设计题目与说明利用递归下降分析方法完成语法分析。 递归下降分析法是一种自顶向下的分析方法,文法的每个非终结符对应一个递归过程(函数)。分析过程就是从文法开始符出发执行一组递归过程(函数),这样向下推导直到推出句子;或者说从根节点出发,自顶向下为输入串寻找一个最左匹配序列,建立一棵语法树。 在不含左递归和每个非终结符的所有候选终结首字符集都两两不相交条件下,我们就可能构造出一...原创 2018-06-18 17:58:44 · 8414 阅读 · 0 评论 -
谈谈写程序与学英语(转载)
注: 本文的作者是宋劲杉,原文链接。俗话说,没有金刚钻,就别揽瓷器活儿。套用到IT业,英语不行,就别做程序员。网上关于程序员学英语的文章不少,但我想谈谈我自己的看法。首先详细讨论一下为什么程序员离了英语不行,然后针对程序员应该怎么学英语说说我的体会。英语是计算机的母语,是程序的母语,所以必然是程序员的母语。程序中的变量名、函数名起得好不好是决定代码质量和可维护性的最关键因素。高质量的代码应...转载 2018-09-04 20:02:20 · 258 阅读 · 0 评论 -
进程和线程的区别
先说重点: 从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。一个程序至少有一个进程,一个进程至少有一个线程.线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效...转载 2018-09-09 00:21:53 · 166 阅读 · 0 评论 -
C语言寻找字符在字符串中的位置
利用char *strchr(const char *str, int c) 函数返回的指针,判断字符c所在的位置找到第一个位置之后,从该位置的下一个字符起找。#include <stdio.h>#include <string.h>int main(){ char str[] = "this is a sample string"; c...原创 2018-04-27 12:49:43 · 26575 阅读 · 0 评论 -
探究数组变量和指针的关系(C语言)
结论:数组变量可以被看作是const的指针变量 (提示:如果对const指针的所有的操作都可以对数组变量做,而且结果一致,就说明数组变量就是指针;如果有某个操作不能做,或者结果不一致,就说明不是指针)验证的程序表明对const指针的sizeof 操作和对数组变量的sizeof 操作并不一致#include <stdio.h>#include <stdlib.h...原创 2018-05-17 12:37:14 · 1486 阅读 · 0 评论 -
念整数
题目内容:你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。如输入1234,则输出:yi er san si注意,每个字的拼音之间有一个空格,但是最后的字后面没有空格。当遇到负数时,在输出的开头加上“fu”,如-2341输出为:fu er san si yi输入格式:一个整数,范围是[-100000,100000...原创 2018-03-30 09:39:25 · 1575 阅读 · 0 评论 -
C实现高精度小数
高精度小数(10分) 题目内容: 由于计算机内部表达方式的限制,浮点运算都有精度问题,为了得到高精度的计算结果,就需要自己设计实现方法。 (0,1)之间的任何浮点数都可以表达为两个正整数的商,为了表达这样两个数的商,可以将相除的结果以多个整数来表示,每个整数表示结果的一位。即商的第一位用一个整数来表示,第二位用另一个整数来表示,以此类推,就可以输出一个高精度的除法结果...原创 2018-04-14 15:24:31 · 1223 阅读 · 0 评论 -
C实现二分查找
#include <stdio.h>//二分查找int search(int key,int a[], int len ){ int ret = -1; //-1表示没找到 int left = 0; int right = len - 1; int mid = (left + right) / 2; while(left &...原创 2018-04-14 16:37:38 · 240 阅读 · 0 评论 -
C实现选择排序
#include <stdio.h>//找出数组的最大值int max(int a[],int len){ int maxid = 0; for(int i = 1; i < len; i++){ if( a[i] > a[maxid] ){ maxid = i; } } re...原创 2018-04-14 17:13:14 · 191 阅读 · 0 评论 -
C语言实现统计整数出现次数
/** 写一个程序,输入数量不确定的[0,9]范围内的整数 统计每一个整数出现的次数 输入-1表示结束 */#include <stdio.h>int main(){ const int MAX_NUMBER = 10; int x; scanf("%d",&x); int a[MAX_NUMBER]; ...原创 2018-04-10 09:55:10 · 12038 阅读 · 0 评论 -
C实现"井"字棋判断
/* tic-tac-toe游戏获胜判断 程序判断3x3的矩阵是否有获胜的一方 输出表示获胜的一方的字符'X'或'O' 或无人胜出 矩阵中的数字1 表示该位置有一个'X' 矩阵中的数字0 表示该位置有一个'O' */#include <stdio.h>//判断'X'或'O'是否存在s个字符 返回胜出结果 int get_result(...原创 2018-04-10 17:03:30 · 1259 阅读 · 0 评论 -
C实现最大公约数
辗转相除法, 又名欧几里得算法。 这条算法基于一个定理:两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数c和b之间的最大公约数。比如10和25,25除以10商2余5,那么10和25的最大公约数,等同于10和5的最大公约数。/* 辗转相除法 1 如果b等于0 结束运算 a就是最大公约数 2 否则计算a除以b的余数 让a等于b b等于所求的余数 ...原创 2018-03-28 11:16:55 · 2631 阅读 · 0 评论 -
整数分解
/*整数分解 1.由x的位数获得 mask 的值 2. x 整除 mask 获得首位 3.x对mask取余(即剔除首位) 4. mask除10 5. 回到第2步 直到 x > 0 */#include <stdio.h>int main(){ int x; scanf("%d",&x); int ...原创 2018-03-28 16:10:32 · 454 阅读 · 0 评论 -
C实现数组寻值
#include <stdio.h>/**找出key在数组a中的位置@param key 要寻找的数字@param a 要寻找的数组@param length 数组a的长度 @return 如果找到返回key在a中的位置 否则返回-1 */ int search(int key,int a[],int length){ int ret = -1; fo...原创 2018-04-13 09:26:45 · 413 阅读 · 0 评论 -
C语言实现鞍点
题目内容: 给定一个n*n矩阵A。矩阵A的鞍点是一个位置(i,j),在该位置上的元素是第i行上的最大数,第j列上的最小数。一个矩阵A也可能没有鞍点。 你的任务是找出A的鞍点。 输入格式: 输入的第1行是一个正整数n, (1<=n<=100),然后有n行,每一行有n个整数,同一行上两个整数之间有一个或多个空格。 输出格式: ...原创 2018-04-18 22:10:09 · 33139 阅读 · 12 评论 -
C简单算法——多项式加法
题目内容: 一个多项式可以表达为x的各次幂与系数乘积的和,比如: 2x6+3x5+12x3+6x+20 现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出。 程序要处理的幂最大为100。 输入格式: 总共要输入两个多项式,每个多项式的输入格式如下: 每行输入两个数字,第一个表示幂次,第二个表示该幂次的系...原创 2018-04-23 20:43:35 · 2044 阅读 · 1 评论 -
PTA-输出倒三角图案
输入格式: 本题目没有输入。 输出格式: 按照下列格式输出由“*”组成的倒三角图案。 #include <stdio.h>int main(){ for(int i = 4; i > 0 ; i--){ for(int k = 4; k > i ; k--) printf(" "); ...原创 2018-04-28 13:14:26 · 4230 阅读 · 0 评论