《小白自学C语言日志》
Day 1 【例1.1】员工的奖励
业绩额 | 奖励金 |
---|---|
业绩>=5 | 1000 |
10<=业绩<50 | 200*业绩额 |
业绩>50 | 250*业绩额 |
伪代码描述 | 程序语句描述 |
---|---|
输入x | scanf(“%d”,&x) |
若5<=x<10 则y=1000 | if(x>=5&&x<10) y=1000; |
否则 | else |
若10<=x<50,则y=200x | if(x>=10&&x<50) y=200*x |
否则 y=250x | else y=250*x |
输出y | printf(“y=%d”),y |
#include <stdio.h>
int main(void)
{
int x,y;
printf("请输入业绩额:");
scanf("%d",&x);
if(x>=5&&x<10) y=1000;
else
{
if(x>=10&&x<50) y=200*x;
else y=250*x;
}
printf("营业额为%d元\n",y);
return 0;
}
//该代码在算法设计时未考虑x<5时的情况//
DAY 2 【题目】求两个数的最大数
#include<stdio.h> //文件包含
int max(int x,int y); //函数声明
int main(void)
{
int a,b,c; //变量申明
scanf("%d,%d",&a,&b); //从键盘输入整数a,b
c=max(a,b); //让函数max求出a,b中大者并记录到c中
printf("max=%d",c); //在屏幕中输出c的值
return 0;
}
int max(int x,int y) //函数max需要处理的信息是两个整数x,y
{
int z;
if(x>y) z=x; //比较x,y,用z记录其中较大的数
else z=y;
return (z); //告诉调用者z的值
}
//主函数与子函数的关系是各自完成功能相对独立的工作,通过调用方式,配合起来比较复杂的功能。//
DAY 3 求n的阶乘
人工与计算机处理问题方法的比较
计算模型 | 求解主要步骤 | 解题特点 | |
---|---|---|---|
人工 | 5!=1* 2* 3*4 * 5 | 按阶乘公式 直接取乘数 乘积记入S | 问题中的已知信息,直接取用即可 |
计算机 | 5!=1* 2*3 *4 *5 | 按阶乘公式 乘数由迭加得到:T=T+1 乘积记入S | 问题中的每一个数据、每一步运算方法都要事前“交代好” |
二者的计算模型是一样的,主要的处理步骤也是一样的,最大的不同点在于,在求解过程中,人对于已知信息是直接取用的,而对于计算机而言,每一个数据、每一步运算方法都要“交代好”。
#include<stdio.h>
int main(void)
{
int n,T,S;
printf("请输入;");
scanf("%d",&n) ;
T=S=1;
while(T<=n)
{
S*=T;
T=T+1;
}
printf("%d\n",S);
return 0;
}
![运行结果
当输入的数为0-31时结果正确
当n>=32时,输出的结果为负,这是为什么呢,还请大佬指教。
【参考文献】 C语言程序设计—程序思维与代码调试 周幸妮著
以上代码均已在Dev c++调试过,当然,一个题目有很多不同的代码的写法,这几天的最大的收获是,计算机算法的特点是规则简单、数据处理的每一步都是简单的,计算机解题的特点就是可以不厌其烦地做简单重复的工作。欢迎评论私信交流学习呀。