正文

C++ 入门 第5章  5.2.3 一维数组的初始化2008-09-16 13:09:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/yzrj/38291.html

分享到:

 

(1) 在定义数组时分别对数组元素赋予初值。例如
int a10={0123456789};
(2) 可以只给一部分元素赋值。例如
int a10={0,1,2,3,4};  
(3) 如果想使一个数组中全部元素值为1,可以写成
int a10={1111111111};
不能写成       int a10={1*10};
不能给数组整体赋初值。
(4) 在对全部数组元素赋初值时,可以不指定数组长度。例如
int a5={12345};
可以写成         int a[]={12345};
 
5.2.4 一维数组程序举例
 
5.2 用数组来处理求Fibonacci数列问题。
可以用20个元素代表数列中的20个数,从第3个数开始,可以直接用表达式fi=fi-2+fi-1]求出各数。
程序如下:
#include <iostream>
#include <iomanip>
using namespace std;
int main( )
  { int i;
    int f20={1,1};            //f0=1,f1=1
    for(i=2;i<20;i++)
 
fi=fi-2+fi-1;      //i的值为2时,f2=f0+f1],依此类
    for(i=0;i<20;i++)                 //此循环的作用是输出20个数
      {if(i%5==0) cout<<endl;         //控制换行,每行输出5个数据
         cout<<setw(8)<<fi;         //每个数据输出时占8列宽度
      }
    cout<<endl;                       //最后执行一次换行
    return 0;
}
运行结果如下:
(空一行)
    1            1            2            3             5
    8          13          21          34           55
  89        144        233        377        610
987      1597      2584      4181      6765
 
5.3 编写程序,用起泡法对10个数排序(按由小到大顺)
起泡法的思路是:将相邻两个数比较,将小的调到前头。见图5.2
然后进行第2趟比较,对余下的前面5个数按上法进行比较,见图5.3

 
5.2                         5.3
 
可以推知,如果有n个数,则要进行n-1趟比较(和交)。在第1趟中要进行n-1次两两比较,在第j趟中要进n-j次两两比较。
根据以上思路写出程序,今设n=10,本例定义数组长度为11a0]不用,只用a1~a10],以符合人们的习惯。从前面的叙述可知,应该进行9趟比较和交换。
#include <iostream>
using namespace std;
int main( )
{
  int a11;
  int i,j,t;
  cout<<input 10 numbers :″<<endl;
  for (i=1;i<11;i++)                       //输入a1~a10
 
cin>>ai;
  cout<<endl;
  for (j=1;j<=9;j++)                      //共进行9趟比较
    for(i=1;i<=10-j;i++)                  //在每趟中要进行(10-j)次两两比较
       if (ai>ai+1)                   //如果前面的数大于后面的数
   {t=ai;ai=ai+1;ai+1=t;}   //交换两个数的位置,使小数上浮
  cout<<the sorted numbers :″<<endl;
  for(i=1;i<11;i++)                      //输出10个数
    cout<<ai<< ;
  cout<<endl;
  return 0;
}
运行情况如下:
input 10 numbers
3 5 9 11 33 6 -9 -76 100 123
the sorted numbers
-76 -9 3 5 6 9 11 33 100 123

阅读(3374) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册