原来代码是根本记不住的
对于这一周的一个总结吧
最近这段时间,因为临近复习周,作为学校干部所需要进行的年终总结和工作真的可以说是很烦了,不仅仅需要做好整个部门的一个总结,还需要将自己在学校的科目做好认真复习,毕竟像鲁迅先生所说的“做一行,爱一行,这样才能够做到更开心的工作”。因此对于我来说既然承担了这一份职责就应该更好的去完善它,也因此每天对于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;
}