针对入门级新手的C++代码分享
编程新人,前来报到!
最近老师布置的C++作业对于我这种纯萌新来讲实在是让人头大 心潮 澎湃,但是我在网上找前辈们的代码学习时发现了一个问题——大佬们的代码都是简洁明了,甚至有所减省的,这对于我们这种小菜鸡而言有点不太友好 高深莫测,所以我就把本菜鸡自己写的代码po上来供大家批评指正啦!
这次贴上来的代码是解决“使用选择排序算法对若干个数进行排序” 这个问题的,欢迎各位大佬们前来锤爆,也供一些像我一样的萌新来参考参考~
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int a,b,c,d,e,i,j,k;
cin>>a; //输入需要排序的数字个数
int *w=new int[a]; //定义一个不定数组w,w的长度即为a,且数组内的数据是可以手动输入的
for (i=0;i<a;i++) //利用for循环体来输入w数组中的数据
{
cin>>w[i];
}
for (e=0;e<a;e++)
{
for(j=e+1;j<a;j++)
{
if (w[e]>w[j]) //若需要从大到小排序,则将>替换为<即可
swap(w[e],w[j]); //利用swap函数,交换w[e]与w[j]的值
}
}
for (k=0;k<a;k++) //最后再利用for循环体输出数组w中的值,此时排序已完成,按照原数组顺序输出即可
{
cout<<w[k]<<" ";
}
system("pause"); //若程序报错,可替换为getchar();
return 0;
}
接下来我对里面的for循环嵌套稍微就着我的理解解释一下,大佬们可以直接忽略了。首先是外层的for循环选出w数组中的第一个数,即w[0]所对应的数,这个目标在内层循环中的if语句条件中实现;其次是内层循环从数组中选择下一个数,即w[1]所对应的数,这个目标在也if语句条件中实现;之后便是两数相比:若第二个数w[1]小于第一个数w[0],则将w[0]所对应的数与w[1]互换,使得w[0]<w[1];若是w[1]大于w[0],则无事发生。这样一来,随着内层循环的不断进行,w[0]始终会是两数之间较小的一方,最终即为最小值。之后执行外层循环的第二步w[1]。最后完成从小到大的排序。
以上~
我的代码是本菜鸡从网络上大佬们的文章里七拼八凑,珠海拾遗所得,虽然加入了一些自己的理解以及一些编程时的坏习惯,但如果侵权了,烦请告知!