本周学习总结
本周是我们开始学习高级语言程序设计的第一周,选用的编程语言是C语言。面对着繁多的知识点朝我飞来,我还是十分头疼信心满满,相信自己学有所成。这门课的实践性非常强,光看课表却不刷题是完全不行的。因此,要在做题的过程中,了解、巩固相关知识。
导航:
输入与输出—在屏幕上显示"Hello World!"
实验1-1 -输入输出格式化控制 Hello World!
本题要求编写程序,输出一个短句“Hello World!”。
输入格式:
本题目没有输入。
输出格式:
在一行中输出短句“Hello World!”。
示例代码:
/*我是注释*/
#include<stdio.h> //编译预处理命令
int main() //定义主函数main
{
printf("Hello World!"); //调用printf()函数输出文字
return 0; //返回整数 0,代表程序运行正常
}
看书了解printf( )函数后,强烈的好奇心驱使着我——那输入函数是什么呢?那就是scanf( )函数,同样在系统文件 stdio.h 中声明(书p27)。
简单数据处理
-
常量和变量
数据有常量和变量之分,不能改变值的是常量,可以改变值的是变量。那么该如何声明一个变量:
类型名 变量名
Ps : 取名字的时候不能包含空格、类型名、标点符号和运算符等。 - 基本数据类型
详见这里 - 算术运算
运算符 + - * / % 名称 加 减 乘 除 模(取余) 优先级 低 高 - 赋值运算
变量 = 表达式; //计算表达式的值,然后将其赋给“ = ”左侧的变量
实验2-2-7-表达式 整数四则运算
本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内
输入格式:
输入在一行中给出2个正整数A和B。
输出格式:
在4行中按照格式“A 运算符 B = 结果”顺序输出和、差、积、商。
输入样例:
3 2
输出样例:
3 + 2 = 5 3 - 2 = 1 3 * 2 = 6 3 / 2 = 1
示例代码:
#include<stdio.h>
int main()
{
int a,b;
scanf("%d %d",&a,&b);
printf("%d + %d = %d\n%d - %d = %d\n%d * %d = %d\n%d / %d = %d",a,b,a+b,a,b,a-b,a,b,a*b,a,b,a/b);// '\n' 是换行
return 0;
}
接下来呢,咱想整个计算器,但又不想像上面那样把加减乘除全都来一次,只想输出我想要的,那这该怎么整呢?
分支结构
- 关系运算符
运算符 < <= > >= == != 名称 小于 小于或等于 大于 大于或等于 等于 不等于 - if-else 语句
一般形式为 : if ( 表达式 )
语句1;
else
语句2; - switch 语句
一般形式为:switch ( 表达式 ) {
case 常量表达式1 : 语句段1; break;
.....
case 常量表达式n : 语句段n; break;
default : 语句段n+1; break;
}
switch 流程图
L1-5【例3-5】 求解简单的四则运算表达式 (10 分)
输入一个四则运算表达式,输出运算结果,要求对除数为0的情况作特别处理。题目保证输入与输出均在双精度范围内。
输入格式:
输入在一行中依次输入操作数1、运算符、操作数2,其间没有空格,操作数的数据类型为实型。
输出格式:
在一行中输出表达式的运算结果,保留两位小数。
如果除法分母为0,则输出错误信息“Divisor can not be 0!”;如果输入了除加减乘除以外的非法运算符,则输出错误信息“Unknown operator!”。
输入样例1:
3.1+4.8
输出样例1:
7.90
输入样例2:
98/0
输出样例2:
Divisor can not be 0!
输入样例1:
123%3
输出样例1:
Unknown operator!
示例代码:
#include<stdio.h>
int main()
{
double a, b;
char c;
scanf("%lf%c%lf", &a, &c, &b);
switch(c)
{
case '+':
printf("%.2lf", a + b);
break;
case '-':
printf("%.2lf", a - b);
break;
case '*':
printf("%.2lf",a * 1.0 * b);
break;
case '/':
if ( b < 0.0000001 )//浮点数精度问题
{
printf("Divisor can not be 0!");
break;
}
printf("%.2lf", a * 1.0 / b);
break;
default:
printf("Unknown operator!");
break;
}
return 0;
}
嗯,就是这样子。
但我还是不满意。这个计算器只能进行一次运算,如果我想进行多次运算,却不想连续编译运行程序该怎么办?
这之后就交给我的小组成员们解决吧!
@疯子眼里小丑最美
@echoesyy
@菻
@Stackoverflow#
有什么错误欢迎大家指出来,记得催更。