算法学习入门----看书笔记

问题一:printf("%.1f\n",8/5);的输出为0.0

(原因:前提条件1.printf()不会进行数据类型的转换

前提条件2:浮点类型和整型在内存中排布不同

而格式字符串"%.1f\n"决定了按浮点读取变量内存块数据)

问题二:printf(''%d'',8.0/5.0);的输出为负数

注:问题一与问题二的都涉及了整数和浮点数编码问题(待解决)

知识点漏点:1.printf("%.1f",a);    表示输出结果保留1位小数,将1换成2就是输出结果保留2位小数;

2.%If是c语言中double的格式字符

竞赛问题:在竞赛过程中不要打印任意的提示消息;因为输入是自动化的

算法学习:

算法1.圆柱体的表面积的计算

注意:最好使用const+数据类型+宏定义名称+对应数据;

注意题中要求的输出,不要自作主张去输出提示性语句;

2.算法2:三位数反转:

解法一:是单独将三个数字提取出来,将位置交换(没有成为一个三位数,是数字直接拼接),然后直接输出【注意的是,这个地方没有必要单独设计单独的变量来储存他的个位数,十位数,百位数】

解法二:是将个位数,十位数,百位数的数字提取出来,再分别乘上100,10,1来变成百位数,十位数,个位数。变成一个新的三位数。

注意:两种解法的不同之处就在于:当个位数为0时,如520,解法一的结果是025,解法二就是25.具体情况要询问监考人员。

算法3:交换两个变量的值

解法一:三变量法:关键是创建一个变量,来临时储存值

解法二:

#include<stdio.h> 
int main() 
{
 int a, b;
 scanf("%d%d", &a, &b);
 a = a + b;//此时a就是a,b之和
 b = a - b;//b就是之和减去b,就是之前的a了
 a = a - b;//a就是之和减去之前的a就是之前的b了,所以就实现了交换
 printf("%d %d\n", a, b);
 return 0; }

推荐:三变量法,越简单处理问题越快捷越好;

-------------------------------之前是顺序结构程序设计-----------------------------------

----------------------------------分支结构程序编程----------------------------------------

算法一:鸡兔同笼:

我的

#include <stdio.h>
#include <stdlib.h>
int main()
{
   int r_num,c_num,h_num,t_num;
   scanf("%d%d",&h_num,&t_num);
   r_num=h_num-c_num;
   c_num=(t_num-r_num*4)/2;
   if(r_num<0 || c_num==0)
   {
       printf("No answer");
   }
   printf("%d %d\n",r_num,c_num);
   return 0;
}

答案:

#include<stdio.h> 
int main()
 {
 int a, b, n, m;
 scanf("%d%d", &n, &m);
 a = (4*n-m)/2;
 b = n-a;
 if(m % 2 == 1 || a < 0 || b < 0)
 printf("No answer\n");
 elseprintf("%d %d\n", a, b);
 return 0;
 }

与5月28日我认为这是因为我的两个计算式都含有未知数,第一个变量是无法算出值的;答案2就是将第一个变量的值计算出来了

-------准备考工作室的第一天,嘻嘻,第一次写博客的泡菜鱼,虽然菜,希望以后不多于哦-----------

在线求求算法的学习历程呀

------------------------------------------5.28-----------------------------------------------------------

----------------------------------------进程:42/723-------------------------------------------------

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值