「C语言」编程习惯和窍门

Tips:

  • 学习算法最好的方法并不是编写程序,而是手算
  • 千万不要图快——如果没有足够的时间来实践,那么学的快,忘的也快
  • 手工模拟的方法重点在于:记录每条语句执行之后各个变量的值
  • 黑盒测试:只考察解决问题的能力,而不关心采用了什么方法
  • 伪代码:在实际应用中并不太拘泥于伪代码的格式,主要目的是描述算法梗概,避开细节,启发思路
  • 尽量缩短变量的定义范围
  • 保持程序简单 Keep It Simple and Stupid

1. 精确数值

 1 const double pi = acos(-1.0); //精确取 π 值
 2 //输出所有形如aabb的完全平方数。注意:a 的范围是1 ~ 9,但 b可以是 0
 3 //方法一:
 4 for(int a=0; a<=9; a++)
 5 {
 6   for(int b=0; b<=9; b++)
 7   {
 8     int n = a*1100+b*11;
 9     int m = floor(sqrt(n)+0.5);
10     if(m*m == n) printf(“%d\n”, n);
11   }
12 }
13 //floor函数只取整数位,小数位舍弃
14 //floor(x+0.5)为了四舍五入 不过这样小数部分0.5也会有误差
15 //因此不能写 if( sqrt(n) == floor(sqrt(n)) ) printf(“%d\n”,n);
16
17 //方法二:
18 for(int x=1; ;x++)
19 {
20   int n = x*x;
21   if (n < 1000) continue;
22   if (n > 9999) break;
23   int hi = n/100;
24   int lo = n%100;
25   if(hi/10 == hi%10 && lo/10 == lo%10) printf(“%d”,n);
26 } 
时间: 2025-01-01 21:10:27

「C语言」编程习惯和窍门的相关文章

「C语言」常量和变量的表示及应用

先发布,还在修改完善中.. 在程序运行中,其值不能改变的量成为常量.在基本数据类型中,常量可分为整型常量.实型常量.符号常量和字符型常量(包括字符常量和字符串常量),现分别介绍如下: 整型常量 即整常数,由一个或多个数字组成,可以带正负号 C语言中整型常量可用十进制.八进制和十六进制3种形式表示 十进制整数:由0~9数字组成,不能以0开始,没有前缀 八进制整数:以0为前缀,其后由0~7的数字组成,没有小数部分 十六进制整数:以0x或0X开头,其后由0~9的数字和a~f(或A~F字母组成) 另外长

「C语言」Windows+EclipseCDT下的C语言开发环境准备

之前写过一篇 「C语言」在Windows平台搭建C语言开发环境的多种方式 ,讨论了如何在Windows下用DEV C++.EclipseCDT.VisualStudio.Sublime Test.Clion等IDE/编辑器搭建C语言开发环境,但也只是点到为止的介绍,对每一个开发环境的选择没有详细的步骤与过程: 这次借助C语言期末课程设计文档上介绍用Eclipse开发C语言的时机,逐步图文论证如何用Eclipse从安装到输出自己的第一个C语言Hello World: 欢迎探讨,欢迎互粉: 目录:

「C语言」文件的概念与简单数据流的读写函数

写完「C语言」单链表/双向链表的建立/遍历/插入/删除 后,如何将内存中的链表信息及时的保存到文件中,又能够及时的从文件中读取出来进行处理,便需要用到”文件“的相关知识点进行文件的输入.输出. 其实,就算不懂得链表,也完全可以学习”文件“相关知识点,但在此之前最好有”指针“基础. 本篇文章整理自<C语言程序设计教程--人民邮电出版社>第十二章——文件,以作文件探讨. 一.数据流与文件概念 二.文件的打开与关闭 三.文件的顺序读写 四.文件的随机读写 一.数据流与文件概念 1.数据流 数据的输入

「C语言」「例题」结构体与共用体

本篇收集<C语言程序设计教程>第九章“结构体与共用体”的所有例题. 1 #include <stdio.h> 2 3 /*输入一个学生的基本信息, 4 包括学号.姓名.性别.年龄.出生日期.三门成绩, 5 输出该学生的基本信息和平均成绩*/ 6 7 struct date 8 { 9 int year;/* 年份 */ 10 int month;/* 月份 */ 11 int day; /* 日期 */ 12 }; 13 14 struct student 15 { 16 char

「C语言」单链表/双向链表的建立/遍历/插入/删除

最近临近期末的C语言课程设计比平时练习作业一下难了不止一个档次,第一次接触到了C语言的框架开发,了解了View(界面层).Service(业务逻辑层).Persistence(持久化层)的分离和耦合,一种面向过程的MVC的感觉. 而这一切的基础就在于对链表的创建.删除.输出.写入文件.从文件读出...... 本篇文章在于巩固链表的基础知识(整理自<C语言程序设计教程--人民邮电出版社>第十章),只对链表的概念及增删改查作出探讨,欢迎指教. 一.链表结构和静态/动态链表 二.单链表的建立与遍历

「C语言」「例题」数组

本篇收集<C语言程序设计教程>第七章“数组”的所有例题. 每个题中有两种以上解决方法的在该程序中以main2().main3()函数表示.  7.1 10个成绩根据出现次数来排序  7.2 定义一个由整数组成的数组,求出其中奇数的个数和偶数的个数,并打印  7.3 含有5个元素的数组的输入输出和最值  7.4 数组的冒泡排序法  7.5 根据出现次数对10个成绩排序  7.6 二维数组计算两个矩阵MA和MB之差,将结果存储在MA中  7.7 一个2行3列的矩阵的转置(行和列元素互换)  7.8

「易语言」主题颜色配置方案

废话不多说直接上预览图: [舒适护眼方案] [夜晚暗色方案] Ps:大家反馈我,说我写的文章废话太多,我只想说那个易语言故事的那个随笔,不是说我废话多,那个就是讲故事的,类似于作文,所以不要喷我了.我干货方面干起来,可是超乎你的想象的! [下载附件如下] https://files.cnblogs.com/files/MuQuanyu-YuGod/护眼&暗色配色主题.zip 老爷们能来条评论,和推荐吗? 原文地址:https://www.cnblogs.com/MuQuanyu-YuGod/p/

「C语言」「算法」访问数组的多种方式

1 #include <stdio.h> 2 3 //分别用数组名和指针变量,以下标法和指针法输入和输出数组的所有元素 4 5 int main(){ 6 int i=0; 7 int array[6]; 8 int *p=array; 9 printf("\n Please input array[6]: \n"); 10 while(p<(array+6)) 11 scanf("%d",p++); 12 printf("\n Outp

「C语言」「算法」根据三边判断三角形类型

1 #include <stdio.h> 2 3 //根据三边长判断是否能组成三角形,分别以边长和角度看能组成什么三角形 4 5 int main(){ 6 int a,b,c; 7 printf("请输入三边的长,并以逗号隔开:\n"); 8 scanf("%d,%d,%d",&a,&b,&c); 9 if(a<=0 || b<=0 || c<=0){ 10 printf("请输入正数");