1 - int a[]={1,2,3...};
2 - int a[13]={2};————第一個單元內中的a0=2,剩下的單元都預設賦為0;
int a[10]={ [0]=2,[2]=3,6, };
——sizeof(a)/sizeof (a[0])
int a[]={1,2,3,4...};
int b[]=a;
1.結果:陣列不能實現將一個陣列變數賦給另一個陣列變數;
2.原因:要實現將一個陣列的所有元素交給另一個陣列,必須通過遍歷;
注意:
int isprime(int x);
int main(void){
int x;
scanf("%d",&x);
if(isprime(x)){
printf("%d是素數\n",x);
}else{
printf("%d不是素數\n",x);
}
}return 0;
int isprime(int x){
int ret=1;
int i;
if(x= =1) ret = 0;
for(i=2;i<x;i++){
if(x%i==0){
ret=0;
break;
}
}
return ret;
}
int isprime(int x){
int ret=1;
int i;
if(x= =1||(x%2==0&&x!=2))
ret=0;
for(i=3;i<x;i+=2){
if(x%i= =0){
ret=0;
break;
}
}
return ret;
}
int isprime(int x){
int ret=1;
int i;
if(x= =1||(x%2==0&&x!=2))
ret=0;
for(i=3;i<sqrt(x);i+=2)
if(x%i= =0){
ret=0;
break;
}
}
return ret;
}
int main (void){
const int number=100;//計算前一百位素數
int prime [number]={2};** //初始化為2**
int count=1;//已經包含了一個元素2;
int i=3;
while(count<number){
if (isprime(i,prime,count)){
prime[count++]=i;
}
i++;
}
for(i=0;i<number;i++){
printf("%d",prime[i]);
if((i+1)%5) printf("\t");
else printf("\n");
}
return 0;
}
1. 令x=2;
2. 將2x,3x,4x...直至ax<n的數標記為非素數;
3. 令x成為下一個沒有被標記的非素數的數,重複2的操作,直到所有數被嘗試完畢;
第一項為2,2的倍數有4,6,8,10,12,將這些數標記為非素數,此時剩下的沒有被標記的非素數為3,5,7,9,11,13;
接著以3為x,3的倍數6,9,12被標記為非素數;此時剩下的沒有被標記的非素數還有5,7,11,13;
以此類推……
1. 開闢prime[n],初始化其所有元素為1,prime[x]為1表示x是素數;
2. 令x=2;
3. 如果x是素數,則對於(i=2;xi<n;i++),令prime[ix]=0;
4. 令x++,如果x<n,重複3,否則結束
int main(){
const int maxnumber=25;
int isprime[maxnumber];
int i;
int x;
for(i=0;i<,maxnumber;i++){
isprime[i]=1;//————1.初始化所有元素為1————
}
for(x=2;x<maxnumber;x++){
if(isprime[x]){
for(i=2;ix<maxnumber;i++){
isprime[ix]=0;//————2.將所有該數的倍數標記為0,也就是標記為非素數————
//————3.同時再對下一個素數進行同樣的操作,對小於maxnumber的數進行遍歷————
}
}
}
for(i=2;i<maxnumber;i++){
if(isprime[i]){
printf("%d\t",i);//————4.將所有是素數的數,isprime仍保留為1的進行輸出————
}
}
printf("\n");
return 0;
}