两道简单的入门题

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 } 

 

posted @ 2018-09-17 18:29  南风--  阅读(152)  评论(0编辑  收藏  举报