两道简单的入门题
1) for循环求100以内奇数和
1 #include<stdio.h> 2 int main(){ 3 int ans=0;//定义一个答案变量存储答案 4 for(int i=1;i<=100;i++)//用for从1循环到100,如果i%2!=0(%是一种取余运算) 5 if(i%2!=0) ans+=i;//也是就,i除2,如果有余数(余数不为0),那么i就是奇数。(自己试一下,5%2==1) 6 printf("%d\n",ans);//输出答案并换行 换行符号'\n' 7 return 0; 8 }
2) 选择排序算法,讲解运行过程(到底是选择排序,还是选择一种排序,噗~,两个都写吧)
1 #include<stdio.h> 2 int main(){ 3 int num[10];//定义一个num数组,储存变量,变量下标为0-9 4 int temp;//定义一个中间的变量(冒泡排序要用) 5 for(int i=0;i<10;i++) 6 scanf("%d",&num[i]);//输入10个整数储存到num中 7 for(int i=0;i<10;i++){ //可以百度,也可以手动模拟一下冒泡排序 8 for(int j=0;j<10;j++){ //选取第i个数,并从0-9循环查看整个数组,是否有小于num[i]; 9 if(num[i]>num[j]){ //如果有,就交换两个变量,(交换的时候,就像交换两杯饮料一样 10 temp=num[i]; //需要第三个杯子当中间变量,如temp; 11 num[i]=num[j]; // 此为降序排序,可以改变num[i]<num[j],为升序。 12 num[j]=temp; 13 } 14 } 15 } 16 for(int i=0;i<10;i++) printf("%d ",num[i]); 17 return 0; 18 }
1 #include<stdio.h> 2 int main(){ 3 int num[10];//定义一个num数组,储存变量,变量下标为0-9 4 int temp;//定义一个中间的变量(冒泡排序要用) 5 for(int i=0;i<10;i++) 6 scanf("%d",&num[i]);//输入10个整数储存到num中 7 for(int i=0;i<10;i++){ 8 int maxi=i; //选择排序不同的地方,每次循环,选取最大(最小)的下标 9 for(int j=i+1;j<10;j++){ //记住这个下标,然后在交换,而冒泡是(发现比我大的就交换) 10 if(num[maxi]<num[j]){ //交换下标。 11 maxi=j; //关于这个maxi=i,j=i+1,是因为前面的数字都已经排好序了,所以就不用访问了。 12 } 13 } 14 if(i!=maxi){ //每组循环之后,交换最大的值,与当前的值。 15 temp=num[maxi]; 16 num[maxi]=num[i]; 17 num[i]=temp; 18 } 19 } 20 for(int i=0;i<10;i++) printf("%d ",num[i]); 21 return 0; 22 }