C語言數組和函數實例練習(一)


C語言的數組和函數部分的知識,在語法上和Java語法是有所相似的,這里只通過實例總結一些自己感覺需要理解的部分知識。

1.數組

數組中的元素具有相同的數據類型;數組一旦創建,不能被改變;數組中元素在內存中是連續依次存在的;使用時需要隨時注意下標越界的問題。

例1:輸入數量不確定的[0,9]范圍內的整數,統計每個數字出現的次數,輸入-1時結束程序。

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i;
    int num[10]={0};
    scanf("%d",&i);
    while(i!=-1){
        if(i>=0&&i<=9){
            num[i]++;
        }
        scanf("%d",&i);
    }
    for(i=0;i<10;i++)
    {
        printf("%d出現了%d次\n",i,num[i]);
    } 
    return 0;
} 

例2:在一組給定的數據中,找出某個數據是否存在。

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 int search(int key,int a[],int length)
 4 {
 5     int ret=-1;
 6     int i;
 7     for(i=0;i<length;i++)
 8     {
 9         if(a[i]==key)
10         {
11             ret=i;
12             break;
13         }
14     }
15     return ret;
16 }
17 int main()
18 {
19     int a[10]={1,2,3,4,5,6,7,8,9,10};
20     int x;
21     int loc;
22     printf("請輸入一個數字:"); 
23     scanf("%d",&x);
24     loc=search(x,a,10);
25     if(loc!=-1)
26     {
27         printf("%d在第%d個位置上。\n",x,loc);
28     }else{
29         printf("%d不存在!"); 
30     }
31     return 0;
32 }

二維數組:int a[i][j];//i行j列的數組

例3:將一個二維數組行和列的元素互換,存到另一個二維數組中。

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 int main()
 4 {
 5     int a[2][3]={{1,2,3},{4,5,6}};
 6     int b[3][2],i,j;
 7     printf("array a:\n");
 8     for(i=0;i<=1;i++)
 9     {
10         for(j=0;j<=2;j++)
11         {
12             printf("%5d",a[i][j]);
13             b[j][i]=a[i][j];
14         }
15         printf("\n");
16     }
17     printf("array b:\n");
18     for(i=0;i<=2;i++)
19     {
20         for(j=0;j<=1;j++)
21         {
22             printf("%5d",b[i][j]);
23         }
24         printf("\n");
25     }
26     return 0;
27 }

2.函數

C語言中的函數和Java中的方法是一個道理的,都是一段實現某種功能的代碼塊,也都要注意返回值、形參實參等。

***注意:若函數有返回值,必須使用帶值的return。

             C語言在調用函數時,永遠只能傳值給函數,不能傳變量。

             C語言不允許函數嵌套定義。

例1:求1-10,20-30,45-60三個區間數字的總和。

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 int sum(int a,int b)
 4 {
 5     int i;
 6     int sum;
 7     for(i=a;i<=b;i++)
 8     {
 9         sum=sum+i;
10     }
11     return sum;
12 }
13 int main()
14 {
15     int x,y,z,result;
16     x=sum(1,10);
17     y=sum(20,30);
18     z=sum(45,60);
19     result=x+y+z;
20     printf("這三組數的和為%d",result);
21 }

例2:swap()無法實現交換兩個變量的值。

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 void swap(int a,int b)
 4 {
 5     int t;
 6     t=a;
 7     a=b;
 8     b=t;
 9 }
10 int main()
11 {
12     int a=5;
13     int b=6;
14     swap(a,b);
15     printf("a=%d,b=%d",a,b); 
16     return 0;
17 } 

原因是:C語言在調用函數時,永遠只能傳值給函數,不能傳變量。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM