学C的第十三天【应用多文件的形式实现 三子棋 程序(重点);练习:1. 打印9*9乘法口诀表、2. 求10个整数中的最大值、3. 分数加减交叉计算、4. 数一下 1到 100 的整数中出现了多少个9】-2

简介: 练习:1. 打印9*9乘法口诀表 (打印时使用 %-2d :后面留两个空格)

练习:

1. 打印9*9乘法口诀表

 

(打印时使用 %-2d :后面留两个空格)

//打印9*9乘法口诀表(%-2d)
int main()
{
  int i = 0;
  //打印行:
  for (i = 1; i <= 9; i++) //乘法表从1开始,所以i = 1
  {
    //每一行的打印:
    int j = 0;
    for (j = 1; j <= i; j++)
    {
      printf("%d*%d=%-2d ", i, j, i * j);
      //%-2d:拿右边的空格来提供两位
    }
    printf("\n");
  }
  return 0;
}

4f49e0f853fb488f932dfb224a9e3996.png

4f49e0f853fb488f932dfb224a9e3996.png

(打印时使用 \t :水平制表符,到下次打印相隔四个字符

//打印9*9乘法口诀表(\t:水平制表符)
int main()
{
  int i = 0;
  //打印行:
  for (i = 1; i <= 9; i++) //乘法表从1开始,所以i = 1
  {
    //每一行的打印:
    int j = 0;
    for (j = 1; j <= i; j++)
    {
      printf("%d*%d=%d\t", i, j, i * j);
      //%-2d:拿右边的空格来提供两位
    }
    printf("\n");
  }
  return 0;
}

fc9685275fee4d8d9aebc989a69e6db0.png

2. 求10个整数中的最大值:

   

(应对数组中有负数的情况 -- 把数组的第一个元素赋给max

//求10个整数中的最大值:
#include <stdio.h>
int main()
{
  int arr[10] = { 0 };
  //输入数组
  int i = 0;
  int sz = sizeof(arr) / sizeof(arr[0]);
  for (i = 0; i < sz; i++)
  {
    scanf("%d", &arr[i]);
  }
  //求最大值
  int max = arr[0]; //假设第一个就是最大值
  for (i = 1; i < sz; i++)
  {
    if (arr[i] > max) 
      //在数组中找到最大值,赋给max
    {
      max = arr[i];
    }
  }
  //输出
  printf("%d\n", max);
  return 0;
}


3d77d6030a8e47fbbb47de0b06b86914.png

3. 计算1 / 1 - 1 / 2 + 1 / 3 - 1 / 4 + 1 / 5 …… + 1 / 99 - 1 / 100 的值,打印出结果(浮点数除法)

 

加法减法交叉执行:)

//计算1 / 1 - 1 / 2 + 1 / 3 - 1 / 4 + 1 / 5 …… + 1 / 99 - 1 / 100 的值,打印出结果
#include <stdio.h>
int main()
{
  int i = 0;
  double sum = 0.0; //浮点数除法
  int flag = 1; //用于改变符号
  //使用循环进行计算
  for (i = 1; i <= 100; i++) //让i充当分母
  {
    sum += flag * (1.0 / i);
    flag = -flag; //循环之后改变符号,实现一加一减……
  }
  printf("%lf\n", sum);
  return 0;
}

40cb0760d77e41508c97d2372341e4be.png

加法减法分别计算:)

//计算1 / 1 - 1 / 2 + 1 / 3 - 1 / 4 + 1 / 5 …… + 1 / 99 - 1 / 100 的值,打印出结果
#include <stdio.h>
int main()
{
  int i = 0;
  double sum = 0.0; //浮点数除法
  int flag = 1; //用于改变符号
  //使用循环进行计算
  for (i = 1; i <= 100; i++) //让i充当分母
  {
    if (i % 2 == 1)
    {
      sum += flag * (1.0 / i);
    }
    else
    {
      sum -= flag * (1.0 / i);
    }
  }
  printf("%lf\n", sum);
  return 0;
}


6a00956b5c97480683a088fb2b2283e7.png

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

   

一个数执行 if 后就无法再在 else if 中执行,99个位和十位都是9,这是要用两个if)

//编写程序数一下 1到 100 的所有整数中出现多少个数字9
#include <stdio.h>
int main()
{
  int i = 0;
  int count = 0;
  for (i = 1; i <= 100; i++)
  {
    if (i % 10 == 9) //个位是9
    {
      count++;
    }
    if (i / 10 == 9) //十位是9
    {
      count++;
    }
    //这里不能使用 else if,因为99个位和十位都算
    //如果使用 else if,99只会计算一次
  }
  printf("%d\n", count);
  return 0;
}

12f9425d888c42c9b61936899b2eba67.png

10.数组的应用实例2:扫雷游戏

相关文章
|
1月前
|
存储 C语言
牛客网刷题总结(1.有序序列判断,2.获得月份天数,3.矩阵相等判定,4.矩阵转换,5.井字棋判断输赢,6.递归进行进制转化)
牛客网刷题总结(1.有序序列判断,2.获得月份天数,3.矩阵相等判定,4.矩阵转换,5.井字棋判断输赢,6.递归进行进制转化)
54 0
|
19天前
|
C语言
C语言学习记录——将三位数的个十百位单独打印,并求其和。
C语言学习记录——将三位数的个十百位单独打印,并求其和。
19 4
|
8月前
|
C语言
乘法口诀标的打印及解释
打印乘法口诀表可以说是c语言中一个很经典的一个简单程序了。 打印乘法口诀表的第一反应可能会是很难,怎么打印出这么多相乘的数呢。但是仔细想分析和考虑的话,其实很简单。那么我来说一下打印乘法口诀表的思路。
37 0
|
11月前
学C的第十三天【应用多文件的形式实现 三子棋 程序(重点);练习:1. 打印9*9乘法口诀表、2. 求10个整数中的最大值、3. 分数加减交叉计算、4. 数一下 1到 100 的整数中出现了多少个9】
9.数组的应用实例1:三子棋(综合以前学习的知识) 三子棋的实现:(重点都在注释中) 1. 游戏不退出,继续玩下一把(循环) 2. 应用多文件的形式写代码
|
11月前
学C的第三天(多组输入的一种方法;简单了解函数,数组,多种操作符)-2
10.2:移位操作符(移动的是二进制位): >>(右移) <<(左移) 10.3:位操作符(操作的额也是二进制位): &(按位与) ^(按位异或) |(按位或)
C语言经典实例:11-20例:使用结构体输出学生成绩、编制万年历、验证哥德巴赫猜想、求二维数组最大最小值、数组求素数、数组元素排序、进制数的转换进制数的转换、找出次大值、重组数组(下)
C语言经典实例:11-20例:使用结构体输出学生成绩、编制万年历、验证哥德巴赫猜想、求二维数组最大最小值、数组求素数、数组元素排序、进制数的转换进制数的转换、找出次大值、重组数组(下)
C语言经典实例:11-20例:使用结构体输出学生成绩、编制万年历、验证哥德巴赫猜想、求二维数组最大最小值、数组求素数、数组元素排序、进制数的转换进制数的转换、找出次大值、重组数组(下)
C语言经典实例:11-20例:使用结构体输出学生成绩、编制万年历、验证哥德巴赫猜想、求二维数组最大最小值、数组求素数、数组元素排序、进制数的转换进制数的转换、找出次大值、重组数组(上)
C语言经典实例:11-20例:使用结构体输出学生成绩、编制万年历、验证哥德巴赫猜想、求二维数组最大最小值、数组求素数、数组元素排序、进制数的转换进制数的转换、找出次大值、重组数组(上)
C语言经典实例:11-20例:使用结构体输出学生成绩、编制万年历、验证哥德巴赫猜想、求二维数组最大最小值、数组求素数、数组元素排序、进制数的转换进制数的转换、找出次大值、重组数组(上)