编程成长之路

我们都是站在父母的肩上去看他们不曾看到的风景!加油!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

啊哈C语言案例学习笔记

Posted on 2023-05-15 20:38  来颗维C  阅读(70)  评论(0编辑  收藏  举报

Hello World

#include<stdio.h>
/*
技术要点:
    初学者在编写程序时,经常会忘记在语句后边添加分号,


*/

int main()
{

	printf("hello world");
	printf("\n");//换行
	return 0;
}

求和运算

/*编写程序:计算10+20 并输出结果
*    解题思路:
* (1)定义一个数据类型
* i 、n、sum均为整型,并为sum赋值:sum=0
* i赋值为10;n赋值为20; 将i与n求和,结果赋值给sum,最后输出sum

*/
//引用头文件
#include<stdio.h>
int main()
{
	int i, n, sum = 0;
	i = 10;
	n = 20;
	sum = i + n;
	printf("%d\n", sum);

	return 0;
}

数据的输入

//#include<stdio.h>
//#include<stdlib.h>
//
//int main()
//{
//	while (true)
//	{
//		system("color  f5");
//		int a, b, c;
//		printf("这是一个加法计算器,欢迎使用\n");
//		printf("-------------------------------\n");
//		printf("请输入第一个数字(按回车键继续):\n");
//		scanf("%d", &a);
//		printf("请输入第二个数字(按回车键继续):\n");
//		scanf("%d", &b);
//		c = a + b;
//		printf("它们的和是:\n");
//		printf("%d", c);
//
//
//		system("pause");
//
//	}
//	return 0;
//}

#include<stdio.h>
#include<stdlib.h>

int main()
{
	while (1)
	{
		int a, b, c;
		printf("欢迎使用计算器\n");
		printf("请输入第一个数(按回车键继续):\n");
		scanf("%d", &a);
		printf("请输入第二个数字(按回车键继续):\n");
		scanf("%d", &b);
		c = a + b;
		printf("它们的和为:\n");
		printf("%d+%d=%d\n", a, b, c);
		c = a - b;
		printf("它们的差为:\n");
		printf("%d-%d=%d\n", a, b, c);
		c = a * b;
		printf("它们的积为:\n");
		printf("%d*%d=%d\n", a, b, c);
		c = a / b;
		printf("它们的商为:\n");
		printf("%d/%d=%d\n", a, b, c);





	}


	system("pause");
	return 0;
}

打印正方形

#include<stdio.h>

int main()
{
	printf("* * * * * \n");
	printf("*       *\n");
	printf("*       *\n");
	printf("*       *\n");
	printf("* * * * * \n");





	return 0;
}

计算正方形周长

/*实例:计算正方形的周长
   解题思路:
   定义数据类型
   变量a定义为整型,表示正方形边长,变量b定义为整形变量,用来存储正方形的周长;
   根据正方形的周长等于边长*4输出周长
   */
//#include<stdio.h>//引用头文件
//
//int main()
//{
//	int a, b;
//	a = 4;
//	b = a * 4;
//	printf("%d\n", b);
//
//
//	return 0;
//}
#include<stdio.h>

int main()
{
	int a, b;
	a = 4;
	b = a * 4;
	printf("%d\n", b);

	return 0;
}

打印名言

/*能否成为真的编程高手,在于是否有毅力坚持学习和练习
* 输出名言:贵有恒,何必三更睡五更起,;最无益,只怕一日曝十日寒				
*/
//引用头文件
#include<stdio.h>

int main()
{
	printf("贵有恒,何必三更睡五更起;最无益,只怕一日曝十日寒");
		printf("\n");//换行


	return 0;
}

三个数找最大值

/*三个数中找最大值的算法思路:
   1、首先先定义四个变量a  b   c  分别存放从键盘输入的三个数  变量d为存放最大数
   2、比较a b 的大小,将最大的数赋值给d
   3、在比较c d 的大小   如果c大于d  则将c的值赋值给d
   4、输出d
*/

#include<stdio.h>
#include<stdlib.h>


int main() {
	while (1) //或者true
	{
		//定义四个变量存放键盘输入的三个数合输出最大值的数a b c d
		int  a, b, c, d;
		//从键盘输入三个数
		printf("请输入第一个数(按回车键继续):\n");
		scanf("%d", &a);
		printf("请输入第二个数(按回车键继续):\n");
		scanf("%d", &b);
		printf("请输入第三个数(按回车键继续):\n");
		scanf("%d", &c);
		if (a > b)
			d = a;
		else
			d = b;

		if (c > d)
			d = c;
		printf("最大数为:\n");
		printf("%d\n", d);

		system("pause");
	}
	return 0;
}

////方法二
//#include<stdio.h>
//#include<stdlib.h>
//
//int main()
//{
//	while (1)
//	{
//		//定义三个变量
//		int a, b, c;
//		//从键盘中输入三个数
//		scanf("%d\n %d\n %d\n %d\n", &a, &b, &c);
//		if (a >= b && a >= c)
//		printf("%d\n", a);
//
//		if (b >= a && b >= c)
//		printf("%d\n", b);
//
//		if (c > a && c > b)
//		printf("%d\n", c);
//
//		system("pause");
//	}
//	return 0;
//}

判断偶数

	/*判断一个数是否是偶数的算法
	  1、首先需要一个房子(变量)装这个数
	  2、判断这个数是不是偶数?(偶数:也就是这个数除2余数为0)
	  
	  */

//#include<stdio.h>
//#include<stdlib.h>
//
//int main()
//{
//	while (1)
//	{
//		int a;
//		printf("请输入一个数:\n");
//		scanf("%d", &a);
//		if (a % 2 == 0)
//		printf("是偶数\n");
//		if (a % 2 != 0)
//		printf("不是偶数\n");
//
//
//
//		system("pause");
//	}
//	return 0;
//}


//判断一个数是否是7的倍数的算法

//#include<stdio.h>
//#include<stdlib.h>
//
//int main()
//{
//	while (1)
//	{
//		int a;
//		printf("请输入一个数字:\n");
//		scanf("%d", &a);
//		if (a % 7 == 0)
//			printf("是7的倍数\n");
//		if (a % 7 != 0)
//			printf("不是7的倍数\n");
//
//
//		system("pause");
//	}
//	return 0;
//}

#include<stdio.h>
#include<stdlib.h>

int main()
{
	while (1)
	{
		int a;
		printf("请输入一个数:\n");
		scanf("%d", &a);
		if (a % 7 == 0)
			//当条件为真时,执行该语句
			printf("是7的倍数\n");
		else
			////条件为假时执行该语句
			printf("不是7的倍数\n");


		system("pause");
	}
	return 0;
}

判断两个数的大小

//比较两个数的大小

/*算法思路:
1、首先定义三个数a,b,c,  a,b存放键盘输入的两个数  c存放a和b中最大的那个数
int a,b,c;
2、然后读入从键盘输入的两个数,分别存放到变量a和b中
scanf("%d %d",&a,&b);
3、使用if  else 语句判断a,b的大小
if (a>b)  c=a;
else  c=b;
*/


#include<stdio.h>
#include<stdlib.h>

int main()
{
	while (1)
	{
		int a, b, c;
		printf("请输入第一个数(按回车键继续):\n");
		scanf("%d", &a);
		printf("请输入第二个数(按回车键继续):\n");
		scanf("%d", &b);
		if (a > b)
			c = a;
		else
			c = b;
		printf("最大数为:\n");
		printf("%d", c);

		system("pause");
	}
	return 0;
}

排序

//比较两个数的大小

/*算法思路:
1、首先定义三个数a,b,c,  a,b存放键盘输入的两个数  c存放a和b中最大的那个数
int a,b,c;
2、然后读入从键盘输入的两个数,分别存放到变量a和b中
scanf("%d %d",&a,&b);
3、使用if  else 语句判断a,b的大小
if (a>b)  c=a;
else  c=b;
*/


#include<stdio.h>
#include<stdlib.h>

int main()
{
	while (1)
	{
		int a, b, c;
		printf("请输入第一个数(按回车键继续):\n");
		scanf("%d", &a);
		printf("请输入第二个数(按回车键继续):\n");
		scanf("%d", &b);
		if (a > b)
			c = a;
		else
			c = b;
		printf("最大数为:\n");
		printf("%d", c);

		system("pause");
	}
	return 0;
}

交换两个数的值

//#include<stdio.h>
//#include<stdlib.h>
//
//int  main()
//{
//	while (1)
//	{
//		int a, b, t;
//		scanf("%d %d", &a, &b);//从键盘读入两个数
//		//例如 5 6
//		t = a;//先将变量a的值为5保存在变量t   此时t的值就是5
//		a = b;//再将变量b的值为6赋值给a  那么a的值就变成了6
//		b = t;//最后将t为5赋值给b  此时b的值就是5
//		printf("%d %d\n", a, b);
//
//
//
//		system("pause");
//	}
//		return 0;
//	
//}

// 表示注释符	作用是让程序更具有可读性

//在不增加其他变量的情况下交换两个变量的值 
#include<stdio.h>
#include<stdlib.h>

int main()
{
	while (1)
	{

		int	a,	 b;
		scanf("%d  %d", &a, &b);
		a = b - a;
		b = b - a;
		a = b + a;
		printf("%d %d\n", a	, b);



		system("pause");
	}
	return 0;
}

if-else语句的且套用法

/*if  else 的嵌套
  if (条件)  语句
  else 语句
  或者
  if (条件)  {语句块}

  嵌套语句的学法:
  if (条件)
  {
     if(条件)
     {
      printf("%d",a);
     
     }
     else
     {
        printf("%d",b);
     
     }
  
  }
  */
#include<stdio.h>
#include<stdlib.h>

int main()
{
    //定义三个变量
    int a, b, c;
    //从键盘上输入数字
    scanf("%d %d %d", &a, &b,&c);//  "%d %d"表示与定义的要输入的个数有关,即要输入a b就用两个%d   &a 表示取a的地址
    //判断大小
    //if (a >= b)//a>=b条件成立情况下
    //{
    //    if (a >= c)//进一步讨论 a>=c
    //    {
    //        printf("%d", a);//两个条件都成立  打印出最大值a
    //    }
    //    else
    //    {
    //        printf("%d", c);
    //    }
    //}
    //else  //a>=b条件不成立
    //{
    //    if (b >= c)//进一步讨论 b>=c 
    //    {
    //        printf("%d", b);
    //    }
    //    else
    //    {
    //        printf("%d", c);
    //    }

    //}
    //如果if else 后面只有一条语句是可以将{}省略从而简化代码
    
    if(a>=b)
    {
        if (a >= c)
            printf("%d", a);
        else
            printf("%d", c);
    }
    else
    {
        if (b >= c)
            printf("%d", b);
        else
        {
            printf("%d", c);
        }
    }





    //getchar();
    system("pause");//防止闪屏  暂停
    return 0;
}

while语句循环输出

/*然后计算机重复执行*/

#include<stdio.h>
#include<stdlib.h>

int main()
{
	//表示条件为真  该处也可以写成  while(1>0)   while(2>0)  while(3>2)  只要条件为真都可以
	while (1>0)
	{
		//调整控制台的背景颜色  5表示背景颜色 f表示字体颜色
		system("color 5f");
		//执行操作	一直打印下去不会停止
		printf("0 1");
	}


	//防止闪屏
	//getchar();
	system("pause");
	return 0;
}

if语句判断正数

/*判断正数的算法(算法:就是解决问题的方法&步骤)
	1、首先计算机需要一个小房子(即变量)来存储这个数

	2、然后,需要告诉计算机这个数是什么?

	3、计算机需要判断这个数是否为正数

	4、最后输出计算机判断的结果

*/

#include<stdio.h>
#include<stdlib.h>

int main()
{
	//实现循环
	while (1)
	{

		//第一步:需要定义一个小房子(变量)来存储要判断的这个数
		int	a;

		//第二步:告诉计算机要输入的这个数是什么?用scanf函数功能:在键盘上读入一个数
		scanf("%d", &a);

		//第三步:判断这个数是否为正数
		if (a > 0)

			printf("yes\n");
		if (a <= 0)

			printf("no\n");

		//第四步:输出结果printf函数



		system("pause");
	}
	return 0;
}


float单精度函数(小数)

#include<stdio.h>
#include<stdlib.h>

int main()
{
	float a;
	a = 3.1415926535897932;
	printf("%.15f", a);


	system("pause");
	return 0;
}

double双精度函数(小数)

#include<stdio.h>
#include<stdlib.h>

int main()
{
	system("color a4");
	double a;
	a = 3.1415926535897932;
	printf("%.15lf",a);



	system("pause");
	return 0;
}

char字符型函数

#include<stdio.h>
#include<stdlib.h>

int main()
{
	system("color fc");
	char a;
	scanf("%c", &a);
	printf("你刚输入的字符是:\n%c\n", a+1);//a+1表示输入字符,输出字符后面的字符

	system("pause");
	return 0;
}

while循环语句的正序输出和倒序输出

/*
   **打印1-100**
#include<stdio.h>
#include<stdlib.h>//在linux系统下所需要的头文件


int main()
{
	//定义一个变量
	int a;
	//给变量赋初始值
	a = 1;
	//使用while控制语句开始执行到退出循环 
	while (a <= 100) //条件
	{
		//printf("%d", a); //打印1-100
		printf("wa");//条件为真执行该步骤
		a = a++;//每一次在初始值上+1
	}

	//或者getchar();
	system("pause");

	return 0;
}
*/

/*打印100-1*/
#include<stdio.h>
#include<stdlib.h>

int main()
{
	//定义一个变量
	int a;
	//给变量赋初始值
	a = 100;  //打印1-100时初始值为1  打印100-1时初始值为100
	//循环条件变为a>=1
	while (a >= 1)
	{
		printf("%d", a);

		//每循环一次将a的值递减1
		a = a--;
	}

	//或者grtchar();
	system("pause");
	return 0;
}

打印1-100中的偶数

/*打印1-100中的偶数
   思路:
   要打印偶数  那就要是2的倍数 即变量a的值要从2开始 每次增加2


*/


#include<stdio.h>
#include<stdlib.h>

int main()
{
	//定义一个变量
	int a;

	//给变量赋初始值  根据问题条件进行赋值
	a = 2;

	//循环条件
	while (a <= 100)
	{

		printf("%d\n", a);
		a = a + 2;
	}



	//或者getchar();
	system("pause");
	return 0;
}

3秒倒计时

#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>

int main()
{
	//清屏 即在打印完数字3后就把数字三清除  使用system("cls")语句放在printf()语句前
	system("cls");
	printf("3");
	Sleep(1000);// 等待1000毫秒也就是1秒  需要加<Windows.h>头文件

	system("cls");
	printf("2");
	Sleep(1000);

	system("cls");
	printf("1");
	Sleep(1000);

	system("cls");
	printf("0\n");

	//防止闪退
	system("pause");
	return 0;
}

60秒倒计时

#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>


int main()
{
	//定义一个变量a来存储60个数字
	int a;
	//为变量赋一个初始值
	a = 60;
	//使用while循环来判断
	while (a >= 0)
	{
		//清屏
		system("cls");
		printf("%d", a);
		Sleep(1000);
		a = a-1;//每循环一次就减1
	}

如果要从60开始倒计时,只需将变量的初始值改为60就可以

2:00钟倒计时

#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>


int main()
{
	//1.定义一个变量
	int m;
	//2.给变量赋初始值
	m = 120;
	//3.使用while循环判断
	while (m >= 0)
	{
		//清屏
		system("cls");
		//4.打印
		printf("\r%d:%.2d", m / 60, m % 60);
		m = m - 1;
		//睡眠1秒
		Sleep(1000);
	}
	
	system("pause");
	return 0;
}

%d:即为普通的输出 \r:表示回车

图片为转载

%2d:按宽度为2输出,右对齐方式输出。若不够两位,左边补空格

这里写图片描述

%02d:同样宽度为2,右对齐方式。位数不够,左边补0

这里写图片描述

%.2d:从执行效果来看,与%02d一样

这里写图片描述

循环嵌套打印***

方法 一

#include<stdio.h>
#include<stdlib.h>

int main()
{
	//定义一个变量
	int a;
	//为变量赋初始值
	a = 1;
	//while循环判断
	while (a <= 15)//总的要打印出15颗*
	{
		printf("*");
		
		if (a % 5 == 0)//第一行打印出5颗*时 
			printf("\n"); //换行到第二行打印
		a = a + 1;//每循环一次加一颗*

	}

	system("pause");
	return 0;
}

方法 二

#include<stdio.h>
#include<stdlib.h>

int main()
{
	//1.定义行 与 输出* 变量
	int a,b;
	//为行号变量赋初始值
	a = 1;
	//while循环
	while (a <= 3)  //while a循环用来控制换行  即只打印三行
	{
		printf("\n");
		a = a + 1;
		
		//为输出的*变量赋初始值
		b = 1;
		//while循环判断
		while (b <= 5)  // while b循环用来控制输出每行5颗*
		{
			printf("*");
			b = b + 1;
		}

	}

	system("pause");
	return 0;
}

在上面代码中有两个while循环,一个是外循环,另一个是内循环,内循环嵌套在外循环中,内循环就是外循环的一部分,外循环每循环一次,内循环就会从头到尾循环一次;其中用来控制外循环的循环次数的变量是a;用来控制内循环循环次数的是变量b

每行打印不同*号

只需要改变while b循环中的值,将while b中的条件改成外循环的条件即可

#include<stdio.h>
#include<stdlib.h>

int main()
{
	//1.定义行 与 输出* 变量
	int a,b;
	//为行号变量赋初始值
	a = 0;
	//while循环
	while (a <= 5)  //while a循环用来控制换行  即只打印三行
	{
		printf("\n");
		a = a + 1;
		
		//为输出的*变量赋初始值
		b = 1;
		//while循环判断
		while (b <= a)  // while b循环用来控制输出每行5颗*
		{
			printf("*");
			b = b + 1;
		}

	}

	system("pause");
	return 0;
}

image-20230422180306947

奔跑的字母

方法1

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>

int main()
{
	//定义一个变量
	int a;

	//清除屏幕
	system("cls");
	//打印
	printf("H");
	//暂停
	Sleep(1000);//需要添加<windows.h>头文件

	system("cls");
	printf(" H");
	Sleep(1000);

	system("cls");
	printf("   H");
	Sleep(1000);

	system("pause");
	return 0;
}

方法2

#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>

int main()
{
	//定义两个变量a b
	int a, b;
	//首先a的初始值为0
	a = 0;
	//a<=100 即字母H走多少步  进入外循环
	while (a <= 100)
	{
		//清屏
		system("cls");

		//b的初始值赋值为1
		b = 1;
		/*判断a b之间的关系是否成立  b <= a不成立(此时a为0 b为1), 不进入内循环,
		不会打印空格 而是打印字母 H
		*/
		while (b <= a)
		{
			printf(" ");
			b = b + 1;
		}


		//打印外循环结果
		printf("H");
		//暂停1秒
		Sleep(1000);
		//a 从0 变为 1
		a = a + 1;

	   
	}

	system("pause");
	return 0;
}

代码解释

首先a的初始值为0 a<=2成立,进入外循环
清屏
b的初始值被赋为1
b<=a不成立(此时a为0,b为1),不进入内循环,不会打印空格打印字母H暂停1秒
a=a+1(a从o变为1)
外循环末尾,跳转到外循环的开始部分,重新判断a<=2是否成立 a<=2成立(此时a为1),继续进入外循环
清屏
b的初始值被赋为1
b<=a成立(此时a为1,b为1),进入内循环
打印空格
b=b+1(b从1变为2)
内循环末尾,跳转到内循环的开始部分,重新判断b<-a 是否成立发现此时b<=a不成立,(此时a为1,b为2),退出内循环打印字母H暂停1秒
a=a+1(a从1变为2)
外循环末尾,跳转到外循环的开始部分,重新判断a<=2是否成立 a<=2成立(此时a为2),继续进入外循环:
清屏幕
b的初始值被赋为1
b<=a成立(此时a为2,b为1),进入内循环
打印空格
b=b+1(b从1变为2)
内循环末尾,跳转到内循环的开始部分,重新判断 b<=a 是否成立此时b<=a成立,(此时a为2,b为2),再次进入内循环
打印空格
b=b+1(b从2变为3)
内循环末尾,跳转到内循环的开始部分,重新判断b<=a 是否成立发现此时b<=a不成立,(此时a为2,b为3),退出内循环打印字母H

暂停1秒

a = a + 1 (a从2变成3)

外循环末尾跳转外循环的开始部分,重新判断a <= 100 是否成立

此时a <= 100 不成立 此时a 为101 退出循环

循环多少次问题

#include<stdio.h>
#include<stdlib.h>

int main()
{
	int a, b;
	a = 1;
	while (a <= 2)
	{
		b = 1;
		while (b <= 3)
		{
			printf("ok");
			b = b + 1;
		}
		a = a + 1;
	}

	system("pause");
	return 0;
}
/*while a 和 while b 循环  当while a 循环一次  while b 就会从头到尾循环3次  所以循环次数
为  2*3=6
*/

奔跑的小人

#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>

int main()
{
	int a, b;
	a = 0;
    //设置循环条件
	while (a <= 800)
	{
		//清屏操作
		system("cls");
		b = 1;
		while (b <= a)
		{
			printf(" ");
			b = b + 1;
		}
		//外循环
		printf(" O\n");
		//内循环
		b = 1;
		while (b <= a)
		{
			printf(" ");
			b = b + 1;
		}
		//外循环
		printf("<H>\n");

		b = 1;
		//内循环
		while (b <= a)
		{
			printf(" ");
			b = b + 1;
		}
		//外循环
		printf("I I\n");



		Sleep(1000);
		a = a + 1;
	}
	

	system("pause");
	return 0;
}
//外循环控制小人移动的速度   内循环控制小人移动的距离

while循环与for循环

while循环的写法

int main()
{
   //1.定义变量
  int a;
  //2.为变量赋初始值
  a = 1;
  //设置判断条件
  while(a <= 10)
  {
    //输出结果
    printf("%d",a);
      //3.每循环一次就加1
      a = a + 1; //或者 a = a++;
  }
}

for循环写法

int main()
{
  //定义变量
  int a;
  //for循环
  for(a = 1; a <= 10; a = a + 1)//a=a+1 可以简写成 a = a++;
  {
     //输出结果
     printf("%d",a);
  }
}

判断质数

#include<stdio.h>
#include<stdlib.h>

int main()
{
	while (1)
	{
		//定义变量来存储待判断的数 a为待判断的数
		int a, i, f;
		//f表示求余为零但是结果不为零  例如 5 % 4 == 0 定义了变量 f = 0 结果不为0
		f = 0;
		//从键盘读入一个数
		printf("请输入一个数:\n");
		scanf("%d", &a);
		//for循环2
		for (i = 2; i <= a - 1; i++)
		{
			if (a % i == 0)
				f = 1;
			//求出该数的约数
			printf("%d\n", i);
		}

		if (f == 0)
			printf("是质数\n");
		else
			printf("是合数\n");



		system("pause");
	}
	return 0;
}

水仙花数

/*题目分析:(三位数为例)
  既然是三位数,那么这三位数必然是100-999中的数,这个数的百位数上只可能是1-9
  十位数上只可能是0-9 各位是上只可能是0-9
  那么就可以使用三层嵌套循环来求解
*/
#include<stdio.h>
#include<stdlib.h>

int main()
{
	//定义百位 十位 各位 上的数
	int i,j ,k ;
	//第一层循环找出百位上的数
	for (i = 1; i <= 9; i++)
	{
		//第二层循环找出十位上的数
		for (j = 0; j <= 9; j++)
		{
			//第三层循环找出各位上的数
			for (k = 0; k <= 9; k++)
			{
				//判断100-999中的水仙花数有哪些
				if (i * 100 + j * 10 + k == i * i * i + j * j * j + k * k * k)
				{
					printf("水仙花数为:\n");
					printf("%d\n", i * 100 + j * 10 + k);
				}
			}

		}
	}
	//以上代码是打印出100-999的数



	system("pause");
	return 0;
}

将一个三位数分开

//将一个三位数分开
#include<stdio.h>
#include<stdlib.h>

int main()
{ 
	int x, a, b, c;
	x = 123;
	a = x / 100;
	b = x / 10%10;
	c = x % 10;
	printf("%d %d %d", a, b, c);

	system("pause");
	return 0;
}

求一个三位数的百 位 十位 个位数之和

//求一个三位数中 百位 十位 个位数的和
#include<stdio.h>
#include<stdlib.h>

int main()
{
	while (1)
	{
		//定义一个三位数 百位 十位 个位
		int k, bai, shi, ge;
		//指引输入
		printf("请输入一个三位数:\n");
		//从键盘上读取三位数
		scanf("%d", &k);
		bai = k / 100;
		shi = k / 10 % 10;
		ge = k % 10;
		printf("这个三位数的和为:\n%d\n", bai + shi + ge);



		system("pause");
	}
	return 0;
}

数学奥数问题

/*在两个方框内填入相同的数字使得两边的等式相等
  □3×6528=3□×6528
  解题思路:
  框内所填的必然是1-9中的某个数
  使用一次循环,让变量i从1到9循环然后每次循环只需要判断一下当前i的值是否符合条件
  如果符合输出结果
  */

#include<stdio.h>
#include<stdlib.h>

int main()
{
	//定义循环变量i
	int i;
	//for语句执行1-9循环
	for (i = 1; i <= 9; i++)
	{
		//假设等式两边成立
		if ((i * 10 + 3) * 6528 == (30 + i) * 6528)
			printf("这个数是:%d\n", i);
	}


	system("pause");
	return 0;
}

数学奥数问题1

/* 问题:在算式中,A,B,C,D,E分别代表五个互不相同的整数,请为A,B,C,D,E分别为多少时算式成立
   ABCD
   ×  E
   ____
   DCBA

解题思路:A,B,C,D,E的取值范围只能是0-9.因此使用5次循环就可以解决问题
*/

#include<stdio.h>
#include<stdlib.h>

//int main(int argc, char**argv // char*argv[])//标准的C语言main函数的写法
int main()
{
	int a, b, c, d, e;
	for (a = 0; a <= 9; a++)
	{
		for (b = 0; b <= 9; b++)
		{
			for (c = 0; c <= 9; c++)
			{
				for (d = 0; d <= 9; d++)
				{
					for (e = 0; e <= 9; e++)
					{
						//判断a,b,c,d,e之间的关系
						if (a != b && a != c && a != d && a != e && b != c && b != d && b != e
							&& c != d && c != e && d != e)
						{
							//判断等式两边的关系
							if ((a * 1000 + b * 100 + c * 10 + d) * e == (d * 1000 + c * 100 + b * 10 + a))
							{
								printf("%d%d%d%d\n", a, b, c, d);
								printf("*  %d\n", e);
								printf("------\n");
								printf("%d%d%d%d\n", d, c, b, a);

							}
						}
					}
				}
			}
		}
	}



	system("pause");
	return 0;
}

随机数的生成

//1.首先让计算机随机的产生一个数


#include<stdio.h>
#include<stdlib.h>
#include <time.h>

int main()
{
	while (1)
	{


		//定义一个随机数
		int a;
		//设置随机数种子
		srand((unsigned) time(NULL));
		a = rand();//rand()是随机数函数
		printf("%d", a);



		system("pause");
	}
	return 0;
}

猜数字游戏

//1.首先让计算机随机的产生一个数


#include<stdio.h>
#include<stdlib.h>
#include <time.h>

int main()
{


	//定义一个随机数和从键盘读取的数
	int a, b;
	//设置随机数种子
	srand((unsigned)time(NULL));
	//随机产生0-99中的整数
	a = rand() % 100;
	while (1)
	{

		//从假盘读取一个数
		printf("请输入一个数:\n");
		scanf("%d", &b);
		//判断你输入的数与随机数的关系  存在三种可能 1.大了 2.小了 3.等于
		if (b > a)
			printf("不好意思!数字大了☛!请继续...\n");
		if (b < a)
			printf("不好意思!数字小了!请继续...\n");
		if (b == a)
		{
			printf("恭喜您☺答对了啦✌你太棒了好✌\n");
		}


		system("pause");
	}
	return 0;
}

自动关机程序

#include<stdio.h>
#include<stdlib.h>

int main()
{
	system("shutdown -s -t 50");

	system("pause");
	return 0;
}

强化版自动关机程序

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int main()
{ 
	//定义系统随机数a,键盘输入b,输入次数sum
	int a, b, sum;
	//执行总次数为6次
	sum = 6;
	//设置随机数种子
	srand((unsigned)time(NULL));
    //调用随机数函数 系统随机数的范围在0-100
	a = rand()%100;

	while (1)
	{
		sum--;
		//从键盘读取一个数
		printf("请输入一个数:\n");
		scanf("%d", &b);
		//判断
		if (b > a)
			printf("数字大了!你还剩余%d次机会!请继续...\n");
		if (b < a)
			printf("数字小了!你还剩余%d次机会!请继续...\n");
		if (b == a)
		{
			printf("恭喜你!答对了!\n");
			//退出循环
			break;
		}
		if (sum == 0)
		{
			printf("没机会了系统将在50秒后自动关机\n");
			//系统自动关机指令  -s表示关机 -r表示重启  -t 50表示50秒后关机
			system("shutdown -s -t 50");
			//取消关机指令system("shutdown -a");
			//退出循环
			break;
		}

	}
	system("pause");
	return 0;
}

逆序输出

/*从键盘读取数字,输出是逆序   例如:输入的数字是:12345 输出的数字是:54321*/
//方法一:最简单的方法
#include<stdio.h>
#include<stdlib.h>

int main()
{
	//定义变量
	int a, b, c, d, e;
	//从键盘输入
	printf("请输入:\n");
	scanf("%d %d %d %d %d", &a, &b, &c, &d, &e);
	//直接输出
	printf("%d %d %d %d %d\n", e, d, c, b, a);


	system("pause");
	return 0;
}

逆序输出多个变量

#include<stdio.h>
#include<stdlib.h>

int main()
{
	//定义变量和数组 用数组来存放这10个变量 要是申请更多的变量只需要将a[]z中的值改变即可
	int a[10],i;
	//将这10个数存放到a[0]-a[9]中
	for (i = 0; i <= 9; i++)
	{
		//根据自己要打印的公式来定
		a[i] = i * i;
	}
	//使用for循环打印出来
	for (i = 0; i <= 9; i++)
	{
		printf(" %d", a[i]);
	}



	system("pause");
	return 0;
}

数组解决100个数的逆序

#include<stdio.h>
#include<stdlib.h>

int main()
{
	//int a[5];
	////键盘读取
	//scanf("%d", &a[0]);
	//scanf("%d", &a[1]);
	//scanf("%d", &a[2]);
	//scanf("%d", a[3]);
	//scanf("%d", a[4]);
	
	//使用for循环简化代码
	int a[5], i;
	//正序输入
	printf("请输入:\n");
	for (i = 0; i <= 4; i++)
	{
		//键盘读取数字
		
		scanf(" %d", &a[i]);
	}
	//逆序输出  只需将i=0;i<=4;i++ 改为 i = 4; i>=0;i--即可
	for (i = 4; i >= 0; i--)
	{
		printf(" %d", a[i]);
	}

	system("pause");
	return 0;
}

数组解决陶陶摘苹果问题

#include<stdio.h>
#include<stdlib.h>

int main()
{
	while (1)
	{

		//定义一个数组a[10]存储苹果到地面的距离的个数  h为身高  sum为摘到苹果的数量
		int a[10], h, sum, i;
		//从键盘随机输入100-200之间的数表示苹果到地面的距离和人的身高
		//输入苹果到地面的距离
		printf("请输入苹果到地面的距离:\n");
		for (i = 0; i <= 9; i++)
		{
			scanf("%d", &a[i]);
		}

		printf("请输入身高:\n");
		scanf("%d", &h);
		sum = 0;
		//输出结果
		for (i = 0; i <= 9; i++)
		{
			//如果苹果到地面的距离小于等于人物的身高加上凳子的高度 那么就摘到苹果
			if (a[i] <= h + 30)
				sum++;
		}

		//输出苹果的总数
		printf("摘到了%d个苹果\n", sum);

		system("pause");

	}
	return 0;
}