一维数组

来源:互联网 发布:交银数据产业519773 编辑:程序博客网 时间:2024/06/07 03:09

数   组:一组具有相同数据类型的数据的有序集合

数组名:这个集合的名称

下   标:某个数据在数组中的序号

数组名和下标唯一确定数组中的一个元素


一维数组:数据类型符   数组变量名[整型常量表达式];int a[10];  float b[20]; char c1[5],c2[10];





一维数组元素:数组名[元素下标0 1 2 3...]  





一维数组的赋值

1.初始化赋值:  数据类型符   数组变量名[常量表达式] = {表达式1,表达式2,....表达式n}



2.先声明,再赋值。

赋值语句: int a[3]; a[0] = 1; a[1] = 2; a[2] = 3; a[3] = 2;

int a[3];

for(i = 0; i < 3; i++)

scanf("%d",&a[i]);  //循环赋值


应用实例:

1.字符统计:输入一行字符,统计其中各个大写字母出现的次数。

#include <stdio.h>

void main()

{

   char ch;

   int num[26] = {0}, i;

   while(ch = (getchar()) != '\n') //输入字符,判断统计

       if(ch >= 'A' && ch <= 'Z') //是否为大写字母

           num[ch-'A']++;

   for(i = 0; i < 26; i++)  //输出结果

   {

       if(i % 9 == 0)

           printf("\n");

       printf("%c(%d)", 'A'+i, num[i]);

   }    

   printf("\n");

}


2.冒泡排序

用冒泡排序法将10个整数按照从小到大的顺序排序。

#include <stdio.h>

#define NUM 10

void main()

{

   int a[NUM], i, t, flag;

   printf("input %d numbers:", NUM);

   for(i = 0; i < NUM; i++)

   {

       scanf("%d", &a[i]);

   }

   for(i = 1; i < NUM; i++)

   {   

      flag = 0;

      for(j = 0; j < NUM -i; j++ )

       {

           if(a[j] > a[j+1])

           {

               t = a[j];

               a[j] = a[j+1];

               a[j+1] = t;

               flag-1;

           }

       }

       if(flag == 0)  break;

   } 

   printf("the sorted numbers:\n");

   for(i = 0; i < NUM; i++)

       printf("%d ", a[i]) ;

   printf("\n");             

}





3.选择排序

#include <stdio.h>

void main()

{

   int a[6], i, j, k, x;

   printf("input 7 numbers : \n");

   for(i=0; i<6; i++)

   {

       k = i;

       for(j=i+1; j<=6; j++)

       { 

           if(a[j]<a[k])     

               k = j;     

           if(i != k)            

               x = a[i]; a[i] = a[k]; a[k] = x;        

       }

   }

   printf("the sorted numbers : \n");

   for(i=0; i<6; i++)

       printf("%d ", a[i]);

}



4.斐波那契排序

F1 = 1

F2 = 1

Fn = Fn-1 + Fn-2 (n>=2)


#include <stdio.h>

void main()

{

   int F[20] = {1, 1}, i;

   for(i = 2; i < 20; i++)

       F[i] = F[i-2] + F[i-1];

   for(i=0; i<20; i++)

       printf("%d ",F[i]);

}





原创粉丝点击