回顾:
环境配置
没有c语言编译器请移步至安装Devc++
变量类型
常用数据类型高低关系
表达式及自增自减
-
加,减, 乘与我们正常生活中使用无区别
-
!!!除法 :两个整数相除如果无法整除将会有精度损失
-
%:就是两个整数无法整除的余数(ps:负数的余数可能是负数,所以在负数中不要使用此操作)
-
(++i)先加后赋值 (i++)先赋值再加
输入一个整数,表示时间,单位是秒。输出一个字符串,用”时:分:秒”的形式表示这个时间。
int main()
{
int t;
scanf("%d", &t);
int hours = t / 3600;
int minutes = t % 3600 / 60;
int seconds = t % 60;
printf("%d:%d:%d\n", hours, minutes, seconds);
return 0;
}
printf输出语句
int、float、double、char等类型的输出格式:
-
int
:%d
-
float
:%f
默认保留6位小数 -
double
:%lf
默认保留6位小数 -
char
:%c
回车也是一个字符,用’\n’表示
int main()
{
int a = 3;
float b = 3.12345678;
double c = 3.12345678;
char d = 'a';
printf("int a = %d, float b = %f\ndouble c = %lf, char d = %c\n", a, b, c, d);
return 0;
}
保留若干位小数
int main()
{
float b = 3.12345678;
double c = 3.12345678;
printf("%.4f\n", b);
printf("%.3lf\n", c);
return 0;
}
最小宽度
int main()
{
int h, m;
scanf("%d%d",&h, &m);
printf("%02d:%02d", h, m);
return 0;
}
if条件语句
简单案例
int main()
{
int a;
scanf("%d", &a);
if(a > 0) printf("这个数是自然数");
return 0;
}
常用运算符
>
大于
>=
大于等于
<
小于
<=
小于等于
==
等于
!=
不等于
int main()
{
int a, b;
scanf("%d%d", &a, &b);
if (a > b) printf("%d > %d\n", a, b);
if (a >= b) printf("%d >= %d\n", a, b);
if (a < b) printf("%d < %d\n", a, b);
if (a <= b) printf("%d <= %d\n", a, b);
if (a == b) printf("%d == %d\n", a, b);
if (a != b) printf("%d != %d\n", a, b);
return 0;
}
else语句
int main()
{
int a;
scanf("%d", &a);
if(a > 0) printf("这个数是自然数");
else printf("这个数不是自然数");
return 0;
}
if-else连写
输入一个0到100之间的分数, 如果大于等于85,输出A; 如果大于等于70并且小于85,输出B; 如果大于等于60并且小于70,输出C; 如果小于60,输出 D;
int main()
{
int s;
scanf("%d", &s);
if (s >= 85)
{
printf("A");
}
else if (s >= 70)
{
printf("B");
}
else if (s >= 60)
{
printf("C");
}
else
{
printf("D");
}
return 0;
}
条件嵌套
输出三个数里面最大的那个
int main()
{
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
if (a > b)
{
if (a > c) printf("%d", a);
else printf("%d", c);
}
else
{
if (b > c) printf("%d", b);
else printf("%d", c);
}
return 0;
}
整合样例
判断闰年。闰年有两种情况: (1) 能被100整除时,必须能被400整除; (2) 不能被100整除时,被4整除即可。 输入一个年份,如果是闰年输出yes
,否则输出no
。
int main()
{
int year;
scanf("%d", &year);
if(year % 100 == 0)
{
if(year % 400 == 0) printf("yes");
else printf("no");
}
else
{
if(year % 4 == 0) printf("yes");
else printf("no");
}
return 0;
}
问题:冗余太多(写了太多次yes
,no
)
如何优化?
条件表达式
-
&&
与 -
||
或 -
!
非
int main()
{
int a = 3, b = 5;
if(a >= 4 && b >= 0) printf("两个条件都成立\n");
if(a >= 4 || b >= 5) printf("一个以上条件成立\n");
return 0;
}
重写闰年
int main()
{
int year;
scanf("%d", &year);
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
printf("yes");
else
printf("no");
return 0;
}
switch-case 语句
int main()
{
int x;
scanf("%d", &x);
switch (x)
{
case 1:
printf("输入的是1!\n");
break;
case 2:
printf("输入的是2!\n");
break;
case 3:
printf("输入的是3!\n");
break;
default:
printf("输入的大于等于3\n");
}
return 0;
}
康熙专治 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)