打印素数和两个小游戏 C语言从入门到入土(入门篇)(算法篇p1)

简介: 1.打印100~200之间的素数 2.输入密码,三次错误则退出程序 3.猜数字游戏

不练习的话也是很难学好的哈!作者将会把平时遇到的好的或者觉得方法新奇的然后范围又在C语言(入门篇)中的题目来分享给大家!

算法篇中的题目并不是说怎么去解决这一道题,而是怎样用更好的方法去解决这些题!!!


1.打印100~200之间的素数

//素数也是质数

//只能被1和他本身整除的数字就是素数

#include <math.h>
int main()
{
  int y = 0;
  int count = 0;
  for (y = 100; y <= 200; y++)
  {
    //判断y是不是素数
    //拿2~y-1的数字去试除y就行
    int n = 0;
    int flag = 1;//假设y是素数
    for (n = 2; n <= sqrt(y); n++)
    {
      if (y % n == 0)
      {
        flag = 0;//y不是素数
        break;
      }
    }
    if (flag == 1)
    {
      printf("%d ", y);
      count++;
    }
  }
  printf("\ncount = %d\n", count);
  return 0;

//sqrt是开平方,头文件为#include<math.h>

//头文件还要加上一个#nclude<stdio.h>


2.输入密码,三次错误则退出程序

//strcmp - string compare
//返回0,说明2个字符串相等
//返回大于0的数字
//返回小于0的数字
#include <string.h>
#include<stdio.h>
int main()
{
  int i = 0;
  char password[20] = "";
  //假设密码是"123456"
  for (i = 0; i < 3; i++)
  {
    printf("请输入密码:>");
    scanf("%s", password);//password不取地址的原因是password是数组名,数组名本来就是地址
    if (strcmp(password, "123456") == 0)//比较2个字符串是否相等,不能使用==,而应该使用strcmp这个函数
    {
      printf("登陆成功\n");
      break;
    }
    else
    {
      printf("密码错误\n");
    }
  }
  if (i == 3)
  {
    printf("三次密码均错误,退出程序\n");
  }
  return 0;
}

上面也要补充一个#include<stdio.h> 哈!因为自己写的时候这个头文件都是放在了编译器的最上面,所以移过来的时候容易漏掉,希望大家多多包容。


3.猜数字游戏

//电脑随机生成一个1~100之间的数字
//猜数字
//玩家猜小了,电脑会告诉:猜小了
//玩家猜大了,电脑会告诉:猜大了
//玩家猜对了,电脑会告诉:恭喜你,猜对了
//C语言中生成的随机数的方式是rand函数
//0~RAND_MAX 0x7fff
//0~32767
#include <stdlib.h>
#include <time.h>
#include<stdio.h>
void menu()
{
  printf("***************************\n");
  printf("*****    1. play     ******\n");
  printf("*****    0. exit     ******\n");
  printf("***************************\n");
}
void game()
{
  int guess = 0;
  //猜数字游戏的过程
  //生成随机数
  int r = rand()%100+1;//0~99-->1~100
  //猜数字
  while (1)
  {
    printf("猜数字:>");
    scanf("%d", &guess);
    if (guess < r)
    {
      printf("猜小了\n");
    }
    else if (guess > r)
    {
      printf("猜大了\n");
    }
    else
    {
      printf("恭喜你,猜对了\n");
      break;
    }
  }
}
int main()
{
  int input = 0;
  srand((unsigned int)time(NULL));//时间-设置随机数的生成器
  do
  {
    //打印菜单
    menu();
    printf("请选择:>");
    scanf("%d", &input);
    switch (input)
    {
    case 1:
      game();
      break;
    case 0:
      printf("退出游戏\n");
      break;
    default:
      printf("选择错误\n");
      break;
    }
  } while (input);
  return 0;
}


咳咳!也少一个#include<stdio.h>

到此今天的内容就结束了哈!今天的内容还是不多的,但是可能需要更多的理解,之后可以在自己的编译器上面尝试一下哈!熟能生巧!

最后的最后!感谢大家的观看!

要是觉得对你有一点用的话!就来一个点赞加关注吧!

谢谢!!!

相关文章
|
26天前
|
算法 数据处理 C语言
C语言中的位运算技巧,涵盖基本概念、应用场景、实用技巧及示例代码,并讨论了位运算的性能优势及其与其他数据结构和算法的结合
本文深入解析了C语言中的位运算技巧,涵盖基本概念、应用场景、实用技巧及示例代码,并讨论了位运算的性能优势及其与其他数据结构和算法的结合,旨在帮助读者掌握这一高效的数据处理方法。
38 1
|
24天前
|
存储 NoSQL 编译器
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
指针是一个变量,它存储另一个变量的内存地址。换句话说,指针“指向”存储在内存中的某个数据。
77 3
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
|
25天前
|
存储 算法 程序员
C 语言递归算法:以简洁代码驾驭复杂逻辑
C语言递归算法简介:通过简洁的代码实现复杂的逻辑处理,递归函数自我调用解决分层问题,高效而优雅。适用于树形结构遍历、数学计算等领域。
|
26天前
|
存储 缓存 算法
C语言在实现高效算法方面的特点与优势,包括高效性、灵活性、可移植性和底层访问能力
本文探讨了C语言在实现高效算法方面的特点与优势,包括高效性、灵活性、可移植性和底层访问能力。文章还分析了数据结构的选择与优化、算法设计的优化策略、内存管理和代码优化技巧,并通过实际案例展示了C语言在排序和图遍历算法中的高效实现。
43 2
|
26天前
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
43 1
|
26天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
58 1
|
1月前
|
存储 算法 数据管理
C语言算法复杂度
【10月更文挑战第20天】
C语言算法复杂度
|
2月前
|
C语言 C++
【C语言】编写“猜数字“小游戏
【C语言】编写“猜数字“小游戏
108 1
|
2月前
|
存储 算法 C语言
【C语言】二分查找算法
【C语言】二分查找算法
|
2月前
|
C语言
回溯入门题,数据所有排列方式(c语言)
回溯入门题,数据所有排列方式(c语言)