在优快云这个大圈子里,随处可见博客的存在,也曾看到很多大佬们写的博客,里面都是满满的干货,真的是实名羡慕啊!奈何自己学的太少了,有些干货也差不多了,目前在准备一些大大小小的面试和考核,还有工作室的题目,新的不多,主要是在实践旧的知识,噢对了,说起实践!早在第一篇博客的时候就说明了它的重要性,真没想到还真的让我更实在的体会到了一把。这不,大一有一个小竞赛,当我在答卷上写的洋洋洒洒的时候,考试结束,在电脑上一操作,简直就是一言难尽,所以一定要多多实践,正如一位好友所说:“找bug就是一个不断试错的过程”,你只有不断去实践了,知道出错点在哪,在写完代码,一次运行成功后的可能性更大一些吧。
鉴于此次想给干货,这里就来贴一些自己写过的代码吧:
1.上次的菱形代码,它其实出来的结果是当行数为奇数时中间只有一行,当行数为偶数时,中间有两行,正如上张博客po出来的图一样,在这里呢,我就是用了几个循环,掌握它的规律即可:
#include <stdio.h>
int main()
{
int i,j,k,n;
printf(“请输入行数:”);
scanf("%d",&n);
if(n%2==0)
{
for(i=0;i<n/2;i++)//为偶数时,利用对称关系,先来上半行
{
for(j=0;j<=n/2-2-i;j++)//空格数每行减一个,初始值为零
{
printf(" ");
}
for(k=0;k<=2*i;k++)//星星每行加两个,初始值为零
{
printf("*");
}
printf("\n");
}
for(i=0;i<n/2;i++)//下半行
{
for(j=0;j<i;j++)//空格从零开始每行加一
{
printf(" ");
}
for(k=0;k<=n-2-2*i;k++)//星星每行减三
{
printf("*");
}
printf("\n");
}
}
else
{
for(i=0;i<(n+1)/2;i++)//奇数行时无法对半,我是分成了b+1/b即总共5行,3/2的形式
{
for(j=0;j<=(n+1)/2-2-i;j++)
{
printf(" ");
}
for(k=0;k<=2*i;k++)
{
printf("*");
}
printf("\n");
}
for(i=0;i<(n+1)/2-1;i++)
{
for(j=0;j<=i;j++)
{
printf(" ");
}
for(k=0;k<n-2-2*i;k++)
{
printf("*");
}
printf("\n");
}
}
}
2.字符串的插入问题,这可以说是一个很经典的题目了,有很多种做法,比如第一种用计算长度函数strlen,又比如用strcat函数,而我这里先贴出一个最基本的利用符号数组的源码,欲知其他两个,嘻嘻嘻,等我下一篇博客叭
#include<stdio.h>
#include<string.h>
int main()
{
char str1[30],str2[30],str3[60];
int pos,i=0,j=0;
printf(“please input string1:\n”);
gets(str1);
printf(“please inpit string2:\n”);
gets(str2);
printf(“please input position:\n”);
scanf("%d",&pos);
while(str1[i]!=’\0’&&i<pos)//先复制str1指定位置前的字符
{
str3[i]=str1[i];
i++;
}
while(str2[j]!=’\0’)//插入代输入字符串str2
{
str3[i+j]=str2[j];
j++;
}
while(str1[i]!=’\0’)//将s中剩余的复制
{
str3[i+j]=str1[i];
i++;
}
str3[i+j]=’\0’;
printf("\n");
puts(str3);
getchar();
return 0;
}
3.选择排序法
#include<stdio.h>
int main()
{
int i,j,min,temp,a[10];
printf(“please input ten numbers:\n”);
for(i=0;i<=9;i++)
{scanf("%d",&a[i]);}//纯粹为了好看啦啦啦
printf(“The original numbers are:\n”);
for(i=0;i<=9;i++)
printf("%d “,a[i]);
printf(”\n");
for(i=0;i<=8;i++)
{
min=i;//假设i为min值
for(j=i+1;j<=9;j++)//将i与后面的数依次比较,直到找到了min为止
if(a[min]>a[j])
min=j;
temp=a[i];//空了才能拿,注意咯各位
a[i]=a[min];
a[min]=temp;
}
printf(“The sorted numbers are:\n”);
for(i=0;i<=9;i++)
printf("%d “,a[i]);
printf(”\n");
return 0;
}
最后,老习惯,让我们来一段结束语吧,大学很忙,真的很忙,但你又不敢停,毕竟和其他人相比差距太大了,所以,如果你想干自己的事,就你们懂得,啥追剧,打游戏,郊游啥的,不如就让我们移到周末吧,工作日可以更在意学业一些,在这里也祝愿大家有一个奈斯的周末呀!
以上
2018.11