C语言入门基础_选择语句和循环语句的综合运用

案例一:打印1-100的奇数

(分别使用for循环和while循环实现)

for循环实现:

int main()
{
	int i = 1;
	for (i = 1; i < 100; i++)
	{
		if (i % 2 == 1)
			printf("%d ", i);
	}
	return 0;
}

 while循环实现:

int main()
{
	int i = 1;
	while (i<100)
	{
		if (i % 2 == 1)
			printf("%d ", i);
		i++;
	}
	return 0;
}

案例二:输入一组成绩,除去最高分,除去最低分,求平均分

(此代码中一组共6个成绩)

#define N 6    //define 定义宏,定义N为6
int main()
{
	int i;
	float score, max = 0, min = 100, sum = 0;
	for (i = 1; i <= N; i++) 
	{
		printf("请输入成绩%d:", i);
		scanf("%f", &score);
		if (score > max)
			max = score;
		if (score < min)
			min = score;
		sum += score;
	}
	printf("平均分为:%0.2f",(sum - max - min) / (N - 2));
	return 0;
}

运行结果:

 

案例三:输入一组数字,倒序输出

#define N 9    //define 定义宏,定义N为9
int main()
{
	int a[N];    //定义一个数组a
	int i = 0, j;

	printf("请输入%d个数字\n", N);
	for (i; i < N; i++)
	{
		printf("请输入第%d个数字:", i+1);
		scanf("%d", &a[i]);
	}

	printf("倒序输出结果为");
	for(j = N - 1; j >= 0; j--)
		printf("%d", a[j]);

	return 0;
}

运行结果:

案例四:实现Fibonacci数列

(1 1 2 3 5 8 13 ...每个数都等于前两个数相加之和)

要求:输出前20项并且每五项换行一次

int main()
{
	int fib[20];        //定义一个数组名为fib的数组
	fib[0] = 1, fib[1] = 1;    //定义数组的第一个元素和第二个元素数值为1
	int i,j;
	for (i = 2; i < 20; i++)
		fib[i] = fib[i - 1] + fib[i - 2];
	for (j = 0; j < 20; j++)
	{
		printf("%d\t", fib[j]);
		if (fib[j] % 5 == 0)      //利用Fibonacci数列特性来实现换行
			printf("\n");
	}
	return 0;
}

运行结果:

 

案例五:求三角形面积

提示:

1、三角形的面积公式 area=s(s-a)(s-b)(s-c)的开平方根,s=(a+b+c)/2

2、sqrt() 为开平方根函数

3、调用数学函数时需要导入#include <math.h>

代码如下:

#include <stdio.h>
#include <math.h>

int main()
{
	float a, b, c, s, area;                   //float定义单精度浮点型,因为数值有可能是小数
	printf("请输入三角形三边:");
	scanf("%f %f %f", &a, &b, &c);            //获取三角形的三边长度,分别为a,b,c
	if (a + b > c && a + c > b && c + b > a)  //判断三角形是否成立的条件:两边之和大于第三边
	{
		s = (a + b + c) / 2.0;                 
		area = sqrt(s*(s - a)*(s - b)*(s - c));
		printf("面积为:%7.2f", area);      //%7.2f指的是结果保留小数点前7位数,小数点后2位数
	}
	else
	{
		printf("输入三边数值错误!");      //若输入的数值不符合三角形的要求,则运行该代码块
	}
	return 0;
}

运行结果:

案例六:关于while循环的实际运用

代码含义:如果输入的字符无错误,则打印输入的字符

int main()
{
	int ch = 0;
	while ((ch = getchar()) != EOF)
	{
		putchar(ch);
	}
	return 0;
}

getchar():用于从计算机终端获取一个无符号字符,getchar()函数只能接收一个字符

putchar():输出指定表达式的值所对应的字符,putchar()函数只能输出一个字符

EOF:如果到达文件末尾或发生读错误,则返回 EOF

运行结果:

 

实际运用1:只输出数字

int main()
{
	int ch = 0;
	while ((ch = getchar()) != EOF)
	{
		if (ch < '0' || ch>'9')
			continue;
		putchar(ch);
	}
	return 0;
}

运行结果:

实际运用2:清除缓存区

int main()
{
	char password[20] = { 0 };
	printf("请输入密码:");
	scanf("%s", password);
	printf("请确认密码(Y/N):");

	//使用getchar()清理缓存区
	int tmp;
	while (tmp = getchar() != '\n')    //将缓存区的回车清除
	{
		;
	}

	int ch = getchar();
	if (ch == 'Y')
		printf("输入成功\n");
	else
	{
		printf("输入失败\n");
	}


	return 0;
}

 运行结果:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值