记录个人学习c语言之路

/2023年3月4日

准备这个月把郝斌老师的c语言课程迅速刷一遍在把谭浩强老师的书给看一篇

/20233月5日

感觉比较重要的知识点

# include <stdio.h>
int main(void)
{
	int x = 47;	//100是十进制
	printf("%x\n", x); //输出结果是:2f
	printf("%X\n", x); //输出结果是:2F
	printf("%#X\n", x);//输出结果是:0X2F
	printf("%#x\n", x);

	return 0;
}
/*
在visual ++6.0中的输出结果为
-------------------------------------
2f
2F
0X2F
0x2f
-------------------------------------

/2023年3月7日

现在已经看到if循环了争取这周看到指针

//20233月8日

任意三个数排序程序实现

​
//对任意三个数字进行排序算法

# include <stdio.h>z'v

int main(void)
{
	int a, b, c;
	int t;

	printf("请输入三个整数(中间以空格分隔)");
	scanf("%d %d %d", &a, &b, &c);
	
	//编写代码完成a是最大值,b是中间值,c是最小值

	if (a < b)
	{
		t = a;
		a = b;
		b = t;
	}

	if (a < c)
	{
		t = a;
		a = c;
		c = t;
	}

	if (b < c)
	{
		t = b;
		b = c;
		c = t;
	}

	printf("%d %d %d\n", a, b ,c);


	return 0;
}

​

/2023年3月10日

/*
2023年3月10日郝斌72讲
求1+ 1/2 + 1/3 + 1/4......+1/100

本程序不对, 因为循环中更新的变量不能定义成浮点型
*/


# include <stdio.h>

int main(void)
{
	float i;
	float sum = 0;
	for (i=1.0; i<=100; ++i)
	{
		sum = sum + 1/i;
	
	}
	printf("sum = %f\n", sum);	//float必须用%f输出

	return 0;
}
//1到100之间的奇数个数

# include <stdio.h>

int main(void)
{
	int i;
	int sum1 = 0;
	int sum2 = 0;
	int cnt = 0;	//个数一般用途cnt表示  count缩写
	float avg = 0;	//average 的缩写

	for (i=1; i<101;++i)
	{
		if (i%2 == 1)
		{	
			sum1 += i;	//求奇数和
			++cnt;				//求奇数的个数
		}
		else 
		{
			sum2 +=i;	//求偶数和
		}

	}
	avg = 1.0*sum1 /cnt ;	//1.0 默认是double类型 ,求奇数平均值

	printf("cnt = %d\n", cnt);
	printf("偶数和是 : %d\n",sum2);
	printf("奇数和是 : %d\n", sum1);
	printf("奇数的平均值是 : %f\n", avg);
	
	
	return 0;
}
/*
在Visual C++ 6.0中的输出结果是:
--------------------------------
nt = 50
偶数和是 : 2550
奇数和是 : 2500
奇数的平均值是 : 50.000000
--------------------------------

*/

i++和++i的区别

/ 前后向自增的区别
# include <stdio.h>

int main (void)
{
	int i;
	int j;
	int k;
	int m;

	i = j = 3;	//等价于 i = 3; j = 3;
	k = i++;
	m = ++j;
	printf("i = %d, j = %d, k = %d, m = %d\n", i, j, k ,m);
	 
	return 0;
}
/*
在Visual C++ 6.0 中的值是
-------------------------
i = 4, j = 4, k = 3, m = 4
------------------------

*/

逗号表达式

# include <stdio.h>

int main(void)
{
	int i;

	
	i = (3, 2, 5, 6); //逗号表达式
	printf("%d\n", i);  //i = 6


 return 0;
}

/2023年3月11日

如何看懂一个程序

 //如何判断一个数是否是回文数

# include <stdio.h>

int main(void)
{
	int val;
	int m;
	int sum = 0;

	printf("请输入你需要判断的数字: ");
	scanf("%d",&val);

	m = val;
	while(m)
	{
		sum = sum *10 +m%10;
		m /= 10;
	}
	
	if (sum == val)
		printf("Yes!\n");
	else
		printf("No!\n");

	return 0;
}


//
试数步骤,要写的很详细,主要是写整齐

1> m = 1234	成立 
	sum = 0*10 + 1234%10 = 4
	m = m/10 = 123;
2> m = 123 成立
	sum = 4*10 +123%10 = 43
	m = 123/10=12
3> m = 12  成立
	sum = 43*10 +12%10 = 4
	m = 12/10 =1
4> m =1
	sum = 432*10+1%10=4321
	m = 1/10=0
5> m =0 不成立

最终sum = 4321

do.....while程序使用举例之一元二次方程的根的求解

# include <stdio.h>
# include <math.h>

int main(void)
{
	double a, b, c;
	double delta;
	double x1, x2;
	char ch;
	
	do
	{
		printf("请输入一元二次方程的三个系数: \n");
		printf("a = ");
		scanf("%lf", &a);

		printf("b = ");
		scanf("%lf", &b);
		
		printf("c = ");
		scanf("%lf", &c);

		delta = b*b -4*a*c;

		if (delta > 0)
		{
			x1 = (-b + sqrt(delta)) / (2*a);
			x2 = (-b - sqrt(delta)) / (2*a);
			printf("有两个解, x1 = %lf, x2 = %lf\n", x1, x2);

		}
		else if (0 == delta)
		{
			x1 = x2 = (-b + sqrt(delta)) / (2*a);
			printf("有唯一解, x1 = x2 = %lf\n", x1, x2);
		}
		else
		{
			printf("无实根\n");
		}
		printf("您想继续么(Y/N): ");
		scanf(" %c", &ch);		//%c前面必须得加一个空格 原因略  牵扯到空白符的问题,《C Primer Plus》 人民邮电,这里面详细讨论了空白符的问题

		
	} while('y' == ch || 'Y' == ch);

	return 0;
}

switch 语句举例(电梯程序)

# include <stdio.h>

int main(void)
{
	int val ;
	
	printf("请输入您要进入的楼层:");
	scanf("%d", &val);

	switch (val)
	{
	case 1:
		printf("1层开!\n");
		break;
	case 2:
		printf("2层开!\n");
		break;
	case 3:
		printf("3层开!\n");
		break;
	default:
		printf("还没盖到这一层!\n");
		break;
	}


	return 0;
}

/2023年3月12日

break 和continue的一些用法

# include <stdio.h>

int main(void)
{
	int x = 1, y = 0, a = 0, b = 0;
	switch(x)	//第一个switch
	{
	case 1:
		switch(y)	//第二个switch
		{
		case 0:
			a++;
			break;	//终止的是第二个switch
		case 1:
			b++;
			break;
		}
		b = 100;	//终止的是第一个switch
		break;
		case 2:
			a++;
			b++;
			break;
	}
	printf("a = %d b = %d\n", a, b);	//26行
	return 0;
}

/*
--------------------------
在Visual C++ 6.0 中的值是
a = 1, b = 100;
--------------------------


*/


for (1: 2: 3)
{
	A;
	B;
	continue;	//如果执行该语句,则执行完该语句后,会执行语句3; C和D都会被跳过去,C和D不会被执行
	C;
	D;

}


while (表达式)
{
	A;
	B;
	continue;	如果执行完该语句后,会执行表达式,C和D不会被执行
	C;
	D;
}

/2023年3月13日

continue的用法

# include <stdio.h>

int main(void)
{
	int i = 0, s = 0;

	do
	{
		if(i%2)
		{
			i++;
			continue;	/*考虑执行该语句后流程会转向执行哪个语句。  //  执行while判断语句*/
		}
		i++;
		s+=i;	// s = s + i;
	
	}while(i<5);

	printf("%d\n", s);

	return 0;
}
/*
1> i=0, i%2 = 0, i = 1,s = 1+0 =1;
2> i=1 < 5, i%2=1,i=1+1=2<5, i%2 = 0, i = 3,s = 1+3 = 4; 
3> i=3<5,i%2=1,成立,i=3+1=4,4<5,4%2=0,不成立,i= i+1 =5,s = s+5 = 4+5 =9
-----------------------------
在Visual C++ 6.0 中的值是:
9
-----------------------------

*/

/2023年3月14日

二维数组的操作与使用

# include<stdio.h>

int main(void)
{
	int a[3][4] = {
		{1, 2, 3, 4},
		{5, 6, 7, 8},
		{9, 10, 11, 12},

	};
	int i, j;


	//输出数组内容
	for (i=0; i<3; ++i)
	{
		
		for (j=0; j<4; ++j)
			printf("%-5d ", a[i][j]);
		printf("\n");

	}

	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值