开始学c++ 第一天

复试终于告一段落,总算是有书读了,不过c貌似用不上了,导师说要c++,好吧,从头开始学习c++。

从当当买的书还没到,先把复试的上机题写上吧,平均十分钟一道题;

第一题:输入10个数,输出前5小的数

算法:排序,冒泡排序之后输出前5个数字

#include <cstdlib>
#include <iostream>
using namespace std;

int main(int argc, char** argv)
{
    int s[10],min,m;
    for(int i=0;i<10;i++)
        cin>>s[i];
    for(int i=0;i<10;i++)
    {
        min=s[i];
        m=i;
        for(int j=i+1;j<10;j++)
        {
            if(s[j]<min)
            {
                min=s[j];
                m=j;
            }
        }
        if(m!=i)
        {
            int temp=s[i];
            s[i]=s[m];
            s[m]=temp;
        }
    }
    for(int i=0;i<5;i++)
        cout<<s[i]<<" ";
}

 第二题:变形斐波拉切数列求和

1,1,1,3,5,9...从第四项开始,每一项是前三项的和,求第n项的取值

算法:主要针对第四项以后,令s[3]={1,1,1}。从第四项开始,每向前移动一项,则s[3]中每一项后移,最高项为数组各项之和。最后对数组求和即可得到结果,注意用于保存数组各项和的变量,每次前移之前,都需要初始化为0;

 1 #include <cstdlib>
 2 #include <iostream>
 3 using namespace std;
 4 
 5 int main(int argc, char** argv)
 6 {
 7     int n,m,w,p=0,s[3];
 8     cin>>n;
 9     //cout<<"1 1 1 ";
10     for(int i=0;i<3;i++)
11     {
12         s[i]=1;
13         cout<<" s:"<<s[i]<<" ";
14     }
15         
16     if(n<=3)
17         m=1;
18     else
19     {
20         for(int i=4;i<n;i++)
21         {
22             w=0; \\对w初始化
23             for(int j=0;j<3;j++)
24             {
25                 w=w+s[j];
26                 if(j<2)
27                  s[j]=s[j+1];
28             }
29             s[2]=w;
30             for(int k=0;k<3;k++)
31                 cout<<" s"<<k<<":"<<s[k]<<" ";
32             cout<<"w:"<<w<<" ";
33         }
34         for(int i=0;i<3;i++)
35     {
36         m=m+s[i];
37        // cout<<" s:"<<s[i]<<" ";
38         
39     }
40     }
41     
42     cout<<"the result:"<<m<<" ";
43 }

第三题:解一元二次方程,输入a,b不全为0的a,b,c,输出解

算法:直接利用求根公式,根据条件判断即可

 1 #include <cstdlib>
 2 #include <iostream>
 3 #include <math.h>
 4 using namespace std;
 5 
 6 int main(int argc, char** argv)
 7 {
 8     int a,b,c;
 9     float x1,x2;
10     cin>>a>>b>>c;
11     if(a==0&&b==0)
12     {
13         cout<<"error";
14     }
15     else if(a==0&&b!=0)
16     {
17         x1=-c/b;
18         cout<<"the solve is:"<<x1;
19     }else
20     {
21         int t=b*b-4*a*c;
22         if(t>=0)
23         {
24             float w=sqrt(t);
25             x1=(-b-w)/(2*a);
26             x2=(-b+w)/(2*a);
27             cout<<"the solve is:"<<"x1="<<x1<<", x2="<<x2;
28         }else
29         {
30              x1=sqrt(-t);
31              x2=-b/(2*a);
32              cout<<"the solve is:"<<"x1="<<x2<<"-"<<x1<<"i, x2="<<x2<<"+"<<x1<<"i";
33         }
34         
35         
36     }
37 }

 

 

 

posted @ 2013-03-31 14:02  微笑_loser  阅读(117)  评论(0)    收藏  举报