数一下1到100的所有整数中出现几个数字9
#include <stdio.h>
int main()
{
int i = 0;
int count = 0;
for (i = 1; i <= 100; i++)
{
if (i % 10 == 9)
count++;
if (i / 10 == 9)
count++;
}
printf("count = %d", count);
return 0;
}
坑点:本质就是判断十位和个位都是不是9——注意数字9的个数99要算两次
分数求和
计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果
逻辑一:用flag控制每轮加数的正负
#include <stdio.h>
int main()
{
int i = 0;
double sum = 0;
int flag = -1;
for (i = 1; i <= 100; i++)
{
flag = -flag;
sum += flag * (1.0 / i);
}
printf("%lf", sum);
return 0;
}
逻辑二:通过奇偶判断进行正负控制
坑点:注意要进行浮点数除法保证结果正确性
求最大值
求10个整数的最大值
逻辑:打擂台,遍历数组一一比较实时更新最大值
#include <stdio.h>
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
int max = arr[0];
int i = 0;
for (i = 1; i < 10; i++)
{
if (arr[i] > max)
max = arr[i];
}
printf("%d", max);
return 0;
}
坑点:1.冒泡排序实现过于复杂
2.二分查找不能使用,不能保证数组有序
在屏幕上输出九九乘法口诀表
#include <stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 9; i++)
{
int j = 0;
for (j = 1; j <= i; j++)
{
printf("%d * %d = %-2d ", i, j, i * j);
}
printf("\n");
}
return 0;
}
坑点:1.2位右对齐:%2d 2位左对齐:%-2d
实现一个函数,打印乘法口诀表,口诀表的行数和列数自己决定
#include <stdio.h>
void print_table(int n)
{
int i = 0;
for (i = 1; i <= n; i++)
{
int j = 0;
for (j = 1; j <= i; j++)
{
printf("%d * %d = %-2d ", i, j, i * j);
}
printf("\n");
}
}
int main()
{
int n = 0;
scanf("%d", &n);
print_table(n);
return 0;
}