程式作業Dev-C

2007-06-03 5:56 am
設陣列array宣告為
int array[]={3,5,0,3,2,4,1,6,8,5,4,3,2};
(a)試撰寫一程式,利用sizeof關鍵字計算陣列array內元素的個數。
(b)接續(a),試找出陣列array內元素的值介於3~6之間(包含3和6)的元素共有幾個。

請幫幫忙><"

回答 (3)

2007-06-03 7:19 am
✔ 最佳答案
//Power by Visual Studio 2005
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char* argv[]){
//==========START==========//
int arrayNumber[]={3,5,0,3,2,4,1,6,8,5,4,3,2},length=sizeof(arrayNumber)/4,i,counter=0;
printf("(a)array = %d\n",length);
for(i=0;i<length;i++)
if((*(arrayNumber+i)>=3)&&(*(arrayNumber+i)<=6))
counter++;
printf("(b)Between 3 and 6 = %d\n",counter);
//==========END==========//
system("PAUSE");
return 0;
}
2007-06-03 9:31 pm
Qqaa寫錯了一個地方, 變數j沒有初始值就直接拿出來++

計算陣列長度我會建議用 sizeof(array)/sizeof(array[0]), 因為如此一來, 有一天你array的型態改變時, 這個地方是不需要改程式的.
直接除以sizeof(int)還算OK, 直接除以4就不大理想, 會變magic number
2007-06-03 7:12 am
#include<stdlib.h>
#include<iostream>

using namespace std;

int array[]={3,5,0,3,2,4,1,6,8,5,4,3,2};

int i,j;

int main(){
i= sizeof(array)/sizeof(int); //計算各數
cout << i << endl;

for(i--;i>=0;i--)
if(array[i]>=3 && array[i]<=6) //計算 3<=array[i]<=6 的個數
j++;

cout << j << endl;

system("pause");
return 0;
}

2007-06-09 17:46:15 補充:
抱歉

int i,j; 改為 int i,j=0;
參考: me


收錄日期: 2021-04-27 17:15:44
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20070602000015KK09475

檢視 Wayback Machine 備份