一个自学编程的大三猿之C语言篇(5)

原来代码是根本记不住的

对于这一周的一个总结吧

最近这段时间,因为临近复习周,作为学校干部所需要进行的年终总结和工作真的可以说是很烦了,不仅仅需要做好整个部门的一个总结,还需要将自己在学校的科目做好认真复习,毕竟像鲁迅先生所说的“做一行,爱一行,这样才能够做到更开心的工作”。因此对于我来说既然承担了这一份职责就应该更好的去完善它,也因此每天对于GitHub的上传也逐渐地减少了,第一次感觉到看着那些绿色的颜色逐渐变浅感觉到了非常沮丧,可能自己真的不够努力吧。

对于数据结构地学习

在这一周内,自己从图书馆借阅到了严蔚敏教授所编著地《数据结构C语言版》,因为有着对于c语言的基础知识,看起来没有特别的困难,但是一开始其中所出现的一些字符和一些话语对于我来说,还是有着一些晦涩难懂,但是这就是一个逐渐学习的过程吧,对于去看那些视频课的学习,我更多的还是选择了先去看书,之后再去进行各种开放性视频的学习,这样可以更好的做到理解和提升,这也是当前我自己学习编程的一个思路吧。

代码的分享

1.0 **猜数字游戏**

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

int main()
{
	srand((unsigned int)time(NULL));//产生一个时间戳

	int s = rand()% 100 + 1;//产生1-100之间的任意一个数

	int n=0;
	printf("请输入一个值:\n");
	while (n != s){//进行判断
		scanf("%d", &n);
		if (n > s)
		{
			printf("高了\n");
		}
		else if (n < s)
		{
			printf("低了\n");
		}
	}
	printf("猜对了\n");
	system("pause");
	return 0;
}
2.0 **二分法查找一个数**

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

int Find(int arr[], int n,int f){//定义查找函数
	int left = 0;//数组起始位置
	int right = n - 1;//数组末尾位置
	int mid;//定义中间位置
	while (left < right){//如果给出的左右位置有错,则无法进行寻找
		mid = (left + right) / 2;////中间位置等于左边加右边除以2
		if (f>arr[mid]){//如果大于中间值,则它在右边
			left = mid + 1;//将左边起始值的位置更换为中间值+1
		}
		else if (f < arr[mid]){//如果小于中间值,则它在左边
			right = mid - 1;//将右边位置,更换为中间值-1
		}
		else
		{
			return mid;//找到了则返回中间位置的值
		}
	}
	return -1;//否则返回-1
}

int main(){
	int arr[10] = { 2, 5, 9, 11, 13, 15, 19, 20, 28, 29 };
	printf("所需要找的数在第%d个\n", Find(arr,10,28));//直接调用查找函数
		system("pause");
	return 0;
}
//在进行二分法查找的前提之下,是要保证所需要查找的数组排列是有序的
3.0 **模拟密码输入的场景**

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

int main(){
	int i;
	char Psssword[1024] = {0};//创建密码数组
	printf("请输入您的密码:\n");
	for (i = 1; i <= 3; i++){
		scanf("%s", &Psssword);
		if (strcmp(Psssword, "77777777") == 0){
			printf("登陆成功\n");
			break;
		}
		else{
			printf("您的密码输入错误,请重新输入!\n");
		}
		if (i == 3){
			printf("抱歉,您的机会已用尽!");
		}
	}
	system("pause");
	return 0;
}
//第一次发现原来登陆窗口就这么简单,也是打算将这样的登陆函数用在对于教学管理系统的登陆见面上

下面这几个程序,将是一系列的转换问题,可能有的过于简单,但是对于这几种方式我都进行了详细的编写。

4.1 **最简单的大小写转换**

#include <stdio.h>
#include <stdlib.h>
int main()
{
	char c1, c2;
	c1 = 'A';//输入大写A
	c2 = c1 + 32;//转换为小写
	printf("%c\n", c1);//输出
	printf("%c\n", c2);
	system("pause");
	return 0;

}
4.2 **利用put get大小写转换**

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

int main(){
	char c1, c2;
	c1 = getchar();//获取变量;
	c2 = c1 + 32;//大小写转换;
	putchar(c2);
	putchar('\n');
	system("pause");
	return 0;
}
4.3 **只转换大小写,若输入其他不进行转换**

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

int main(){
	char c1, c2;
	c1 = getchar();//获取变量;
	c2=(c1 >='A' && c1 <='Z')?(c1+32):c1;//大小写转换; 在这行代码之中采用了选择语言,x1,x2?y1:y2
	putchar(c2);
	putchar('\n');
	system("pause");
	return 0;
}

随着大小写的转换,我自己也是试着编写了一个关于密码译码转码的转换问题,当然可能或许会有着那么一些low,大家别笑话就好。

5.0 **逻辑密码**

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

int main(){
	char c1, c2, c3, c4, c5;
	printf("请输入五个字母的密码:\n");
	scanf("%c%c%c%c%c", &c1, &c2, &c3, &c4, &c5);
		c1 += 4;//逐次往后加4;
		c2 += 4;
    	c3 += 4;
		c4 += 4;
		c5 += 4;
		printf("%c%c%c%c%c", c1, c2, c3, c4, c5);
	system("pause");
	return 0;
}
//但是对于这个程序之后,可能大家也会看到,那就是若是26个英文字母之中最后的几位又应该如何改变呢?因此我也是做了一些升级版。 5.1就是。
5.1 **升级版的译码**

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

int main(){
	char c;
	printf("Enter the char:\n");
	c = getchar();
	while (c!= '\n')
	{if ((c >= 'a' && c <= 'z') || (c >= 'A'&&c <= 'Z')){//如果输入的是26个英文字符后四个的话
			if ((c >= 'w'&& c <= 'z') || (c >= 'W'&& c <= 'Z'))
				c = c - 22;//将26个字母形成链,就不会存在5.0的问题了
	         else c = c + 4;
			}
			
		printf("%c", c);
		c = getchar();//读取下一个字母
	}
	printf("\n");
	system("pause");
	return 0;
}
发布了18 篇原创文章 · 获赞 12 · 访问量 967

猜你喜欢

转载自blog.csdn.net/Luckily0818/article/details/103439288