分支和循环练习题(3)


前言


一、练习题

1.编写一个程序,数一下1-100的所有整数中出现多少个数字9

#include <stdio.h>
//一个数模10余9或者一个数除10为9
int main()
{
	int i = 0;
	int count = 0;
	for (i = 1; i <= 100; i++)
	{
        if (i % 10 == 9)
		{
			printf("%d ", i);
			count++;
		}
		if (i / 10 == 9)
		{
			printf("%d ", i);
			count++;
		}

	}
	printf("\ncount=%d\n", count);
	return 0;
}

这道题比(2)中的练习题还要简单一点,但需要明白的数学知识点是, 一个数模10余9或者一个数除10为9说明这个数出现了9,还有个易错点,99算有两个9,不能用else if语句来连接。

2.计算1/1-1/2+1/3-1/4+1/5······+1/99-1/100的值,打印出结果

 有两种思路

思路1:先计算所有分数相加的结果,然后第一个数(1)前面乘以flag(定义为1)这个数,进入循环,执行一次flag=-flag,就可以实现分数的分母为奇数相加,为偶数相减,代码如下:

#include <stdio.h>

int main()
{
	int i = 0;
	int flag = 1;
	double sum = 0.0; //一个1除以一个整数,得0余1,所以定义和的时候要用浮点数
	for (i = 1; i <= 100; i++)
	{
		sum += flag * (1.0 / i);
		flag = -flag;
	}
	printf("%lf\n", sum);
	return 0;
}

思路2:

就是直接分母为奇数相加,为偶数相加,再用分母为奇数的值减去分母为偶数的值 就是想要的结果,会稍微复杂一点,同时也要注意,定义变量的时候要用浮点数,一个1除以一个整数,得0余1,所以定义和的时候要用浮点数,除以i的数也是浮点数1.0,而不是1!!!

#include <stdio.h>

int main()
{
	int i = 0;
	double n1 = 0.0, n2 = 0.0;
	double sum = 0.0;
	double sum1 = 0.0, sum2 = 0.0;
	for (i = 1; i <= 100; i++)
	{
		if (i % 2 != 0)
		{
			n1 = 1.0 / i;
			sum1 += n1;
		}
		if (i % 2 == 0)
		{
			n2 = 1.0 / i;
			sum2 += n2;
		}

	}
	sum = sum1 - sum2;
	printf("%lf\n", sum);
	return 0;
}

 3.求10个整数中的最大值

 十个整数,所以我们需要创建一个数组,当然也要考虑正负之分,所以不能直接定义max=0,将max直接定义为数组中的第一个数,然后再和后面的数进行大小比较就可以啦!

#include <stdio.h>

int main()
{
	int arr[] = {-1, -2, -3, -4, -5, -6, -7, -8, -9, -10};
	int max = arr[0];//这里不能定义max=0,需要考虑小于0的情况,
	                //所以直接将max定义为数组中第一个数,将第一个数与后面其他的数对比
	int i = 0;
	int sz = sizeof(arr) / sizeof(arr[0]);//求数字元素个数
	for (i = 1; i < sz; i++)
	{
		if (max < arr[i])
		{
			max = arr[i];//max小于数组中的数,就让这个数等于max,一直比较循环,直到比完
		}
	}
	printf("max=%d\n", max);
	return 0;
}

 4.在屏幕上输出一个9*9乘法口诀表

 一个嵌套的for循环语句,9*9的话,就确定行和列不超过9

#include <stdio.h>

int main()
{
	int i = 0, j = 0;
	for (i = 1; i <= 9; i++)//第一个循环是要打印九行
	{
		//打印第一行
		for (j = 1; j <= i; j++)//第二个循环是打印一行的信息
		{
			printf("%d*%d=%-3d", i, j, i * j);//%与d之间的数字是几就在打印的时候打印几位
											//不够的话就用空格补齐
											//正数的话是右对齐,负数是左对齐
		}
		printf("\n");
	}
	return 0;
}

 


总结

再说一遍,数学思想很重要,然后就是不能用自己的思想去代入电脑中,要用电脑语言,这一篇中的几题都属于是基础题,老师说,一般要进厂的话,都不会考这么简单的!!!慢慢来,这不也学了一些嘛,总比没有好。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值