文章目录
前言
一、练习题
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;
}
总结
再说一遍,数学思想很重要,然后就是不能用自己的思想去代入电脑中,要用电脑语言,这一篇中的几题都属于是基础题,老师说,一般要进厂的话,都不会考这么简单的!!!慢慢来,这不也学了一些嘛,总比没有好。