首页 > 其他分享 >啊哈C语言案例学习笔记

啊哈C语言案例学习笔记

时间:2023-05-15 20:45:50浏览次数:40  
标签:main int system 笔记 C语言 while 啊哈 printf include

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;
}

标签:main,int,system,笔记,C语言,while,啊哈,printf,include
From: https://www.cnblogs.com/weiguanghao/p/17403039.html

相关文章

  • Java学习笔记(十二)
    1、    请描述你理解的对象数组对象数组是一种由多个对象组成的数组,每个元素都是一个对象。在Java中,对象数组可以用来存储同一类型的对象,这些对象可以是预定义的类对象,也可以是自定义的类对象。2、请描述数组的扩容机制扩容其实就是定义一个空间程度更大的数组,然后把原......
  • 打卡 c语言趣味编程 二分查找算法实现
    N个有序整数数列已放在一维数组中,利用二分查找法查找整数在数组中的位置。若找到,则输出其下标值;反之,则输出“Notbefound!”。思路:二分查找法(也叫折半查找)其本质是分治算法的一种。所谓分治算法是指的分而治之,即将较大规模的问题分解成几个较小规模的问题,这些子问题互相独......
  • DOT 学习笔记
    开始大恶补图论了。说句闲话,\(\text{ODT}\)和\(\text{DOT}\)。\(\text{DOT}\),全称「树上启发式合并(\(\text{dsuontree}\))」,乍一听这个算法十分有智慧的样子,实际上也确实是一个人类智慧,他的本质就是「离线+节点合并」,听着复杂度似乎很扯,但是实际上它是正确的,但是我不会证明......
  • C语言getifaddrs()通过网口IP获取网口名
    原文地址:https://www.cnblogs.com/liqinglucky/p/getifaddrs.html用C语言实现通过ip地址获取到本地网口名。比如我知道网口IP是173.1.4.53,怎么通过这个IP匹配出网口是ens9?#ipaddr1:lo:<LOOPBACK,UP,LOWER_UP>mtu65536qdiscnoqueuestateUNKNOWNgroupdefaultqlen1......
  • 【阅读笔记】四月
    五.画蛇添足系统的架构师都会有一种诱惑,设计一个完美的系统,这个系统会覆盖到需求的方方面面,并且这个系统要没有任何的bug。但是呢,这个诱惑通常会在需求的变更,进度的压力,团队的其他成员无法准确理解,或者甚至是新手程序员经验不足的各种情况下,逐渐陷入一个没完没了的焦油坑中......
  • 程序员修炼之道阅读笔记01
    程序员修炼之道—从小工到专家 是我这学期阅读的第二本书,这本书的前言中告诉了我们这本书的大体内容,它将告诉我们我们怎样以一种我们等够遵循的方式去编程。在刚开始读这本书的时候,我的收获就很大,我们要做注重实效的程序员,那么什么是注重实效的程序员呢?1、这需要我们......
  • 梦断代码阅读笔记02
    第六章:完成设计方案卡普尔认为,软件设计不仅只是在程序员代码之上覆盖一层诱人的图形。它是一种设想用户需求并在软件结构中满足这些需求的创造性基础工作。在软件世界中,集成(integration)的意思就是把一段运行正常的代码连接到某个程序中另一段运行正常的代码上。良......
  • 梦断代码阅读笔记01
    第一章:软件时间代码语言高速发展,人们对软件的要求越来越高,但是目前的软件产品却满足不了广大用户的需求,所以开发者也一直行走在改错的道路上。作者迷恋于一个开放代码并可以由游戏玩家更改程序的一个游戏,并为在它的基础上创新和增添一些功能而乐此不疲。0代表程序员的思......
  • 程序员修炼之道阅读笔记03
    第四章:注重实效的偏执这章讲的是程序员如何把“你不可能写出完美的软件”这一压抑的事情转变为有利条件。按合约设计(DBC):指的是做某事的期望和陈述。 前条件,开始之前的必要条件。后条件,执行后悔导致的状态。类不变项,类确保在调用者看来,该条件总是为真。死程序不说......
  • 程序员修炼之道阅读笔记02
    注重实效的途径1、重复的危害:DRY原则,系统中的每一项知识都必须具有单一、无歧义、权威的表示。不能重复自己。那么重复是怎么发生的?强加的重复:我们似乎觉得,我们必须这样才行。无意的重复:我们在不知不觉间重复信息。无耐性的重复:当我们发现现在需要的一部分代......