c语言

ZZULIOJ 1138: C语言合法标识符

笑着哭i 提交于 2020-02-06 00:00:04
题目描述 输入一个字符串,判断其是否是C的合法标识符。C语言中规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。 输入 输入一个长度不超过50的字符串。 输出 如果输入数据是C的合法标识符,则输出"yes",否则,输出“no”。 样例输入 8fixafghgjhjhjyuyuyyuyuyu 样例输出 no #include<stdio.h> int main(){ char ch[52],flag=1; int i; gets(ch); for(i=0;ch[i]!='\0';i++){ if(i==0&&ch[i]>='0'&&ch[i]<='9'){ //首字母单独判断 flag=0; continue; } if(!((ch[i]>='0'&&ch[i]<='9')||(ch[i]>='a'&&ch[i]<='z')||(ch[i]>'A'&&ch[i]<='Z')||ch[i]=='_')){ //不是大小写字母、下划线字母 flag=0; continue; } } if(flag==1) printf("yes"); else printf("no"); return 0; } tips:注意运用字符串是数组的特性 来源: CSDN 作者: vivi_cin 链接: https://blog.csdn.net/vivi_cin

CCF201509-2日期计算(C语言)

两盒软妹~` 提交于 2020-02-05 23:00:59
题目 问题描述   给定一个年份y和一个整数d,问这一年的第d天是几月几日?   注意闰年的2月有29天。满足下面条件之一的是闰年:   1) 年份是4的整数倍,而且不是100的整数倍;   2) 年份是400的整数倍。 输入格式   输入的第一行包含一个整数y,表示年份,年份在1900到2015之间(包含1900和2015)。   输入的第二行包含一个整数d,d在1至365之间。 输出格式   输出两行,每行一个整数,分别表示答案的月份和日期。 样例输入 2015 80 样例输出 3 21 样例输入 2000 40 样例输出 2 9 注意点 1.输出格式:在输出整数日期之后有一个换行符 2.在判断是否为闰年的函数,我原本设定的返回值类型为bool,返回true/false,这样在提交时会出现编译出错的字样。于是改成int类型。原因可能是在CCF网站是在linux平台上进行编译运行程序的,不允许bool类型(如有错误,敬请指正) C语言实现的源代码(100分) # include <stdio.h> int isLeapYear ( int year ) { if ( ( year % 4 == 0 && year % 100 != 0 ) || ( year % 400 == 0 ) ) return 1 ; else return 0 ; } void getMonthDay

C语言寒假大作战04

流过昼夜 提交于 2020-02-05 21:38:00
2.1.1 C语言寒假大作战04 这个作业属于哪个课程| 2019级软件工程4班 (中南林业科技大学涉外学院) | 这个作业要求在哪里| C语言寒假大作战04 | ---|:--:| 这个作业的目标|学会函数的基本操作 形参实参的使用 尝试编写一个功能性强的程序| 参考资料|[c语言中%g是什么意思?]( https://zhidao.baidu.com/question/271899014.html ) C语言基础知识:C语言函数调用怎么返回两个值 | 2.2.2 设计思路和遇到的问题 我发现我写的代码无法调用变量中从函数中的返回的符号,从而计算出结果。 所以我用if语句通过判断变量中的符号来再来列出相对应计算符号式子来对结果分两次计算。 一开始我打算在三年级那块分两步进行,先算a与b,再算result-1和c,发现如果a/b,结果如果是无限小数会导致以下结果 也就是数据错误。 所以我想到了助教和吴佳柳同学的相似的方法,再用switch结构嵌套分两次类,然后一次性计算result,这样就可以避免数据错误。 (中间连续使用两次switch结构没有在case 结尾加上break,浪费了好多到多的时间,甚至还以为自己采用的新办法是错误的,真的太粗心了) 2.2.3 程序结果截图 2.2.4 程序代码 #include<stdio.h> #include<stdlib.h>

Huffman编码的c语言实现

让人想犯罪 __ 提交于 2020-02-05 20:14:47
在此本人用一个简单的例子来介绍Huffmantree。 a ,b,c,d,e频率分别为2、4、1、5、3,首先来建立Huffmantree.a、b、c、d、e分别代表此Hufmantree的5个叶子节点,刚开始时这5个节点代表5棵树,这5棵树组成森林。取森林中频率最小的两棵树,合成一棵二叉树,该二叉树的根节点的频率为这两个叶子结点的频率之和,将这两个频率最小的树从森林中删掉,新的树加入森林,一次重复此步骤,知道建立一棵Huffmantree. 以此例为例子,建立Huffamtree的各个步骤如下: 最后建立的Huffmantree如下: 在Huffmantree中,结点的左边为编码‘0’,右边为编码‘1’,故在该Huffmantree中,a的编码为001,b的编码为10,c的编码为000,d的编码为11,e的编码为01。 下面用c语言来实现Huffman编码: 程序的主要思路如下: 首先定义一个结构体数组,结构体的成员有:数据内容,频率,节点的父母亲,节点的右、左儿子。Huffmantree有5个叶子节点,故Huffmantree共有2 5-1个节点,所以结构体数组的的长度可为2 5(序号为0的节点未使用)。1~5号节点为叶子节点,其余的节点为Huffmantree的内部节点,根据Huffmantree的建立规则,建立对应的Huffmantree

C语言寒假大作战02

巧了我就是萌 提交于 2020-02-05 19:01:25
问题 回答 这个作业属于那个课程 班级链接 这个作业要求在哪里 作业要求 这个作业的目标 要求大家完成菜单的逻辑结构。 作业正文 使用函数、Switch语句来完成菜单程序并通过git上传文件至远程仓库 其他参考文献 百度,《C语言程序设计》 2.2.2 设计思路和遇到的问题 思路 先在主函数内把程序开始的内容编写出来,然后就先不管主函数了,再根据菜单程序函数调用图把需要用到的六个函数一一编写在下面,最后按照作业要求去使用这六个函数,用while和switch语句编译可能出现的六种情况 遇到的问题 1.开始忘记了这次作业还需要输入,没有使用scanf 2.在调用函数时把函数前的int也调用了进去 3.出现了上面这个错误,我翻译出来也不知道是什么原因,然后百度一下才发现原来仅仅是因为上一个运行窗口还没关掉...... 2.2.3 程序结果截图 2.2.4 程序代码 2.2.5 你对“设计”这个词的理解 设计也就是要有目的的去进行创造和创作,设计是一个作品的基础,设计出好的作品需要自身有一定的实力,我们所用的书本就叫做《C语言程序设计》,设计出的程序更完美,程序所能解决问题的能力也就更高。 2.2.6 Gitee上传截图与链接 链接 来源: https://www.cnblogs.com/wangwenzhi/p/12264862.html

Java与c语言的区别!

泪湿孤枕 提交于 2020-02-05 18:59:20
Java与c语言的区别! Java与c都属于计算机的高级编程语言,都是为了方便人去编写出来东西控制计算机的。 不同的是,Java是一种面向对象的语言,c是一门面向过程的语言。 打个比方来说,你要给你朋友寄快递,Java的做法是找家快递公司,把快递交给快递公司,告诉快递公司需要送到你朋友所在地中你朋友手里,然后快递公司接到快递之后,会帮我们把快递送到目的地的你朋友的手中,这样我们就完成了我们的操作,这里面的快递公司就相当于一个对象;而对于面向过程的编程语言来说,由于没有对象的概念,所以他需要自己想办法走到你朋友所在的地方,找到朋友,然后将快递交给你朋友;这样相比较,Java会简洁方便很多。 其次对于不同的平台来说,Java只需要编译一次,就可以在不同的平台上面运行,对于c来说,如果在window上面编译生成的文件只能在window上运行,如果想要在Linux系统下运行,需要重新在Linux下面进行编译。 原因是由于Java有自己的一套虚拟机体制,Java编译完成之后,会生成class文件,然后将生成的文件移到不同的平台时,Java虚拟机会帮助我们将class文件翻译成计算机所能识别的信息,这样就可以在不同平台运行了。 打个比方来说就是我们要和不同国家的人聊天,Java的做法相当于找了一个厉害的翻译,我们说的话他都可以根据不同的国家翻译给不同的人听

C语言寒假大作战02

北战南征 提交于 2020-02-05 18:25:28
2.2.1 作业头 问题 答案 这个作业属于哪个课程 2019级计算机科学与技术1班 这个作业要求在哪里 C语言寒假大作战02 这个作业的目标 使用“while”循环及“switch...case...”来完成代码编写 作业正文 作业正文 其他参考文献 C语言编程:以实例教你如何在控制台程序中模拟一个选项菜单功能,百度 2.2.2 设计思路和遇到的问题 (1)刚刚开始遇到这个题目的时候,最大的问题就是完全不知道这个题目是什么意思,就只知道是让设计一个菜单程序,后来查了一些资料慢慢有了一些思路,也给自己理了一下大概脉络。 (2)看到作业要求说使用函数、Switch语句来完成菜单程序,所以我的主程序主要使用“while”循环及“switch...case...”选择结构来帮助我实现自己的目的。 (3)我先使用while语句来进行判断是否进入程序,再用“switch...case...”结构中根据x的值,程序选择执行不同的功能代码。 2.2.3 程序结果截图 2.2.4 程序代码 2.2.5 你对“设计”这个词的理解 (1)设计是把一种设想通过合理的规划、周密的计划、通过各种感觉形式传达出来的过程。根据百度得知设计先是策划一个即将实施的项目,然后按照策划的要求进行构思、制定方案、实施操作、绘制图样、进行施工、检验样本、通过设计方案的验收等整个环节的工作。总而言之设计就是设想、运筹、计划

C语言实现任意进制间的转换

不问归期 提交于 2020-02-05 16:01:42
题目描述: 编写代码实现将输入的n进制数转换为x进制,即实现任意进制数转换为另任意进制数。 思路: C语言实现任意进制间的转换可以以十进制为基准,先将需要转换的数字转换成十进制然后再将其转换成目标进制数,这样就实现了任意进制间的转换。 引用函数: int ChangeTen(int n, char str[]); ChangeX(int n, int x); 首先将涉及大于十进制的转换的数挑出来,利用ASCALL码将字符转换成整型或将整型转换成字符 以取余的方式,将十进制数转换成其他进制数,再按照按权展开的方式,将其他进制数转换成十进制数 代码实现 # include <stdio.h> # include <stdlib.h> # include <string.h> int ChangeTen ( int n , char str [ ] ) ; void ChangeX ( int n , int x ) ; int main ( ) { char str [ 100 ] ; //由于待转换数的进制未知,可能存在字母表达,所以用字符串储存 int n , x , s ; printf ( "输入待转换数及其进制:\n" ) ; scanf ( "%s %d" , str , & n ) ; s = ChangeTen ( n , str ) ; printf (

C语言寒假大作战02

柔情痞子 提交于 2020-02-05 14:45:44
这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2019-4/homework/10255 我在这个课程的目标是 这个作业在那个具体方面帮助我实现目标 参考文献 C语言编程:以实例教你如何在控制台程序中模拟一个选项菜单功能 2.2.2设计思路和遇到的问题 设计思路: 对于编程本来就弱的我,加上放假很久没看编程,所以直接查找了资料来进行编程。 遇到的问题: help()没有定义 2.2.3程序结果截图 2.2.4程序代码截图 2.2.5对于"设计"这个词的理解 设计是一个与创新一样的词,是弄出新东西的一种。 2.2.6 Gitee上传截图与链接 2.2.7链接 我的码云 来源: https://www.cnblogs.com/ysshhd/p/12263425.html

6个变态的C语言Hello World程序

拟墨画扇 提交于 2020-02-05 14:09:09
下面的六个程序片段主要完成这些事情: 输出Hello, World 混乱C语言的源代码 下面的所有程序都可以在GCC下编译通过,只有最后一个需要动用C++的编译器g++才能编程通过。 hello1.c 01. #define _________ } 02. #define ________ putchar 03. #define _______ main 04. #define _(a) ________(a); 05. #define ______ _______(){ 06. #define __ ______ _(0x48)_(0x65)_(0x6C)_(0x6C) 07. #define ___ _(0x6F)_(0x2C)_(0x20)_(0x77)_(0x6F) 08. #define ____ _(0x72)_(0x6C)_(0x64)_(0x21) 09. #define _____ __ ___ ____ _________ 10. #include<stdio.h> 11. _____ hello2.c 01. #include<stdio.h> 02. main(){ 03. int x=0,y[14],*z=&y;*(z++)=0x48;*(z++)=y[x++]+0x1D; 04. *(z++)=y[x++]+0x07;*(z++)=y[x++]+0x00