c 語言的例題 數組的 經典題

數組的應用:

1.依次按照下面要求完成操作:
聲明一個包含6個元素的int數組chuck,並將它初始化爲從2開始的連續6個偶數。
編寫語句,將chuck數組的第一個元素和最後一個元素的和賦值給變量even,並將even輸出。
編寫語句,顯示chuck數組中第3個元素的值。
編寫語句,將chuck數組中第5個元素的值改爲100。
編寫語句,依次顯示chuck數組中所有的元素,元素間用逗號隔開。
倒序輸出chuck數組中所有的元素。
另外定義一個6個元素的int數組dipsea(要求在定義時所有元素初始化爲0),將chuck數組的內容賦值給

dipsea數組,然後顯示dipsea數組所有元素的值,元素間用逗號隔開。
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int chuck[6] = { 2, 4, 6, 8, 10, 12 };
  int i = 0;
  int even;
  chuck[4] = 100;
  printf("6個偶數元素爲:\n");
  for (i = 0; i < 6; i++) {
  printf("%d,", chuck[i]);

  }
  printf("\n");
  printf("第一個元素和最後一個元素的和爲:\n");
  even = chuck[0] + chuck[5];
  printf("%d\n", even);
  printf("chuck數組中第3個元素的值爲:\n");
  printf("%d\n", chuck[2]);
  printf("chuck數組中第5個元素的值爲:\n");
  printf("%d\n", chuck[4]);
  printf("倒序輸出爲:\n");
  for (i = 5; i >= 0; i--) {
  printf("%d ", chuck[i]);
  }
  printf("\n");
  int dipsea[6] = { 0, 0, 0, 0, 0, 0 };
  printf("dipsea數組所有元素的值爲:\n");
  for (i = 0; i < 6; i++) {
  dipsea[i] = chuck[i];
  printf("%d ", dipsea[i]);
  }
return EXIT_SUCCESS;
}

2.編寫一個程序,從鍵盤上接收10個整數,將它們保存到一個數組裏。在輸入完成後輸出用戶剛剛輸入的

10個整數。
從鍵盤上再接收一個整數,將它保存到int變量number裏。
從剛纔第一次接收的10個整數中,查找是否有整數number,如果有則輸出它在數組中的位置,否則輸出沒

有找到(沒有找到是指數組中沒有一個元素的值與number值相等,則輸出沒有找到)。
#include <stdio.h>
#include <stdlib.h>
int main(void) {

int arr[10];
   int i,number;
   printf("請輸入10個整數:");
   fflush(stdout);

   for(i=0;i<10;i++){
   scanf("%d",&arr[i]);
   }
   printf("數組元素爲:\n");
   for(i=0;i<10;i++){
   printf("%d ",arr[i]);
   }
   printf("\n");
   printf("請在輸入一個整數:\n");
    fflush(stdout);
    scanf("%d", &number);
    for (i = 0; i < 10; i++)
     if (arr[i] == number)
     break;
     if (i >= 10){
     printf("沒有找到!\n");
     }
     else{
     printf("%d在數組中得位置是:arr[%d]!", arr[i], i);
     }


return EXIT_SUCCESS;
}

3.定義一個數組days,將其初始化爲今年每月的天數,編寫一段程序,將每月的天數打印出來。打印形式

如下: 
   Month 1 has 31days.

#include <stdio.h>
#include <stdlib.h>
#define MONTHS 12
int main(void) {

int days[MONTHS] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
 int i;
 for (i = 0; i < MONTHS; i++) {
  printf("MONTH %d has %d days.\n", i + 1, days[i]);
 }

return EXIT_SUCCESS;
}

4.編寫一段程序,要求定義一個含有5個元素的數組,實現數組接收鍵盤輸入的數字,輸入完畢後打印數組

元素,並比較得出數組中元素的最大值和最小值,並輸出。
#include <stdio.h>
#include <stdlib.h>
int main(void) {

int arr[5];
  int i,max,min;
  printf("請輸入五個整數:");
  fflush(stdout);

  for(i=0;i<5;i++){
  scanf("%d",&arr[i]);
  }
  printf("數組元素爲:\n");
  for(i=0;i<5;i++){
  printf("%d ",arr[i]);
  }
  max=min=arr[0];
  for(i=0;i<=4;i++){
  if(max<arr[i]){
  max=arr[i];
  }else if(min>arr[i]){
  min=arr[i];
  }
  }
  printf("\n");
  printf("最大值爲:%d\n最小值爲:%d\n",max,min);


return EXIT_SUCCESS;
}

5.定義一個由整數組成的數組,求出其中奇數的個數和偶數的個數,並打印。
#include <stdio.h>
#include <stdlib.h>
int main(void) {


int arr[]={1,2,3,4,5,6,7};
int i,js=0,os=0;
int len =sizeof(arr)/sizeof(int);
printf("數組元素爲:\n");
for(i=0;i<len;i++){
 if(arr[i]%2==0){
  os+=1;
 }else{
  js+=1;
 }
 printf("%d ",arr[i]);
}
printf("\n");
printf("偶數個數爲:%d\n奇數個數爲:%d",os,js);

return EXIT_SUCCESS;
}

6.定義一個int型的一維數組,包含10個元素,分別賦值爲1~10, 然後將數組中的元素都向前移一個位置

,即a[0]=a[1],a[1]=a[2],…最後一個元素的值是原來第一個元素的值,然後輸出這個數組。
#include <stdio.h>
#include <stdlib.h>
int main(void) {


int arr[]={1,2,3,4,5,6,7,8,9,10};
  int i,temp;
  printf("原數組爲:\n");
  for(i=0;i<10;i++){
  printf("%d ",arr[i]);
  }
  printf("\n");
  temp=arr[0];
  for(i=0;i<9;i++){
  arr[i]=arr[i+1];
  }
  arr[i]=temp;
  printf("向前移動後的數組爲:\n");
  for(i=0;i<10;i++){
  printf("%d ",arr[i]);
  }

return EXIT_SUCCESS;
}

7.有一個3行4列的數組,編寫一段程序,求出其中的最大值,以及最大值所在的行號和列號。
#include <stdio.h>
#include <stdlib.h>
int main(void) {

int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
  int i,j,c,d,max;
  max=a[0][0];
  //循環行數
  for(i=0;i<=2;i++){
  //循環列數
  for(j=0;j<=3;j++){
  if(max<=a[i][j]){
  max=a[i][j];
  c=i;
  d=j;
  }
  }
  }
  printf("最大數爲:%d\n行號爲:%d\n列號爲:%d",max,c+1,d+1);//下標從0開始
 


return EXIT_SUCCESS;
}

8.定義一個包含有5個元素的int數組,並且初始化爲0;
從鍵盤上接收5個整數,依次保存到int數組中。
要求你想辦法,把數組的元素值倒序過來存儲。
#include <stdio.h>
#include <stdlib.h>
int main(void) {

int arr[5]={0,0,0,0,0};
  int i;
  printf("請輸入五個整數:");
  fflush(stdout);

  for(i=0;i<5;i++){
  scanf("%d",&arr[i]);
  }
  printf("五個整數逆序輸出爲:\n");
  for(i=4;i>=0;i--){
  printf("%d ",arr[i]);
  }


return EXIT_SUCCESS;
}

9.

打印一個十行的楊輝三角,打印效果如圖所示:

 

 

#include <stdio.h>
#include <stdlib.h>
int main(void) {


 int i, j, a[11][11];
 for (i = 1; i < 11; i++) {/*for循環i的範圍從1到10*/
  a[i][i] = 1;/*對角線元素全爲1*/
  a[i][1] = 1; /*每行第一列元素全爲1*/ }
 printf("打印圖形如下:\n");
 for (i = 3; i < 11; i++)/*for循環範圍從第3行開始到第10行*/
  for (j = 2; j <= i - 1; j++)/*for循環範圍從第2列開始到該行行數減一列爲止*/
   a[i][j] = a[i - 1][j - 1] + a[i - 1][j];/*第i行j列等於第i-1行j-1列的

值加上第i-1行j列的值*/


 for (i = 1; i < 11; i++) {
  for (j = 1; j <= i; j++)
   printf("%-5d", a[i][j]);/*通過上面兩次for循環將二維數組a中元素輸出*/
   printf("\n");/*每輸出完一行進行一次換行*/

 }

return EXIT_SUCCESS;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章