例1:从键盘输入两个数,得到较大的那个数
#include<stdio.h>
int main()
{
int i,j;
while (scanf_s("%d%d", &i,&j) != EOF)
{
if (int result = i > j ? i : j)
{
printf("theMaxNumber = %d\n", result);
}
}
}
例2:从键盘输入三个数,得到较大的那个数
算法思想:①在i > j成立的条件下,若i > k成立( i > j ,i > k),则最大值为i;
②在i > j成立的条件下,若i > k不成立( k > i > j ),则最大值为k;
③在i > j不成立的条件下(j > i),若j > k 成立,则j > k > i,则最大值为j;
④在i > j不成立的条件下(j > i),若j > k 不成立(k > j),则k > j > i,则最大值为k;
扫描二维码关注公众号,回复:
10537532 查看本文章
#include<stdio.h>
int main() {
int i, j, k;
int result;
while (scanf_s("%d%d%d", &i, &j, &k) != EOF)
{
if (result = i > j ? (i > k ? i :k ) : (j > k ? j : k))
{
printf("theMaxNumber = %d", result);
}
}
}
3.逗号表达式:逗号表达式整体的值,是最后一个表达式的值
#include<stdio.h>
int main(){
int i;
i = 5, 6, 7;
printf("%d\n", i);//5
i = (5, 6, 7);
printf("%d\n", i);//7
}
4.自增与自减运算:
++在后:
j = i++ > -1;
将其拆为:j = i > -1; (第一步:去掉++) i++;(第二步:自增)
#include<stdio.h>
int main(){
int i = -1;
int j = i++ > -1;
printf("i = %d\nj = %d\n",i,j);//i = 0 j = 0
j = !++i;
printf("i = %d\nj = %d\n", i, j);//i = 1 j = 0
5.goto语句向上跳转可以实现循环
例:计算1~100之和:
#include<stdio.h>
int main(){
int i = 1;
int total = 0;
lable:
total = total + i;
i++;
if (i <= 100)
{
goto lable;
}
printf("total = %d",total);
}
6.break与continue:
continue跳过循环体中尚未执行的语句:
例:求0~10中的偶数之和
#include<stdio.h>
int main() {
int i;
int total = 0;
for (i = 0; i <= 10; i++)
{
if (i % 2 == 1) {
continue;
}
total = total + i;
}
//2 + 4 + 6 + 8 + 10 = 30
printf("total = %d", total);
}
7. 例:打印五行 *,每行有九个
#include<stdio.h>
int main() {
//外层循环控制行数
for (int i = 0; i < 5; i++)
{
//内层循环控制每行的打印内容--九个*
for (int j = 0; j < 9; j++)
{
printf("*");
}
//换行
printf("\n");
}
}
8.输入一个日期,计算出这个日期是本年的第几天
#include<stdio.h>
#define N 12
int main() {
int year, month, day;
while (scanf_s("%d%d%d",&year,&month,&day) != EOF)
{
int i;
int total = 0;
//用数组存储每个月份的天数
int a[N] = {31,28,31,30,31,30,31,31,30,31,30,31};
for ( i = 0; i < month - 1; i++)
{
total = total + a[i];
}
//考虑闰年与平年
if (month > 2 )
{
//(year % 4 == 0 && year % 100 != 0 || year % 400 == 0)的值为0/1
total = total + (year % 4 == 0 && year % 100 != 0 || year % 400 == 0);
}
total = total + day;
//年月日分别占4,2,2位,不足则用0补齐
printf("%04d-%02d-%02d is the %dth day in this year", year, month, day,total);
}
}