⑴ c語言求數組中質數的和
#include<stdio.h>
intprimesum(intx[],intn)//函數的返回值是int
{int*p,i,s=0;
for(p=x;p<(x+n);p++)
{
for(i=2;i<=*p-1;i++)
if(*p%i==0)break;
if(i>=*p)
s+=*p;
}
returns;//把return放在FOR裡面,只會運行一次就退出了。所以得不到你想要的結果。
}
voidmain()
{
inta[80],i,n;
printf("請輸入數組元素個數: ");
scanf("%d",&n);
printf("請輸入數組的%d個元素: ",n);
for(i=0;i<n;i++)//這里改
scanf("%d",&a[i]);
printf("數組中質數的和是%d",primesum(a,n));//傳數組a的名字就是地址,a[80]下標越界了,而且不是地址。
}
⑵ 用C語言求100以內的素數
#include<stdio.h>
int main()
{
int i,k,n;
printf("請輸入一個整數:");
scanf("%d",&n); //輸入 n 范圍上限
printf("1~%d的素數為:\n",n);
for(i=2;i<=n;i++) //外循環 從2到n 查找
{
for(k=2;k<=i;k++) //內循環 將i除以 2到 i的所有值
if(i%k==0) //i能整除 其中一個數就不是素數 跳出內循環
break;
if(k>=i) //k>=i如果成立 說明前面循環結束時應為 k<=i不滿足 或 k=i是break
//跳出循環 這兩種情況都說明 2到i所有的數都不能被i整除 (除了自身)
printf("%8d\n",i); //滿足就輸出這個素數
}
printf("\n");
return 0;
}
⑶ C語言:求100以內的素數,用數組完成此題。
#include<stdio.h>
intmain()
{
inti;
inta[100],b[100];
intcount=0;
for(i=1;i<=100;i++)
{
intCnt=0;
a[i-1]=i;
for(intj=1;j<=i;j++)
{
if(a[i-1]%j==0)
Cnt++;
}
if(Cnt==2)
{
b[count]=a[i-1];
count++;
}
}
printf("100以內總共有%d個素數,分別如下: ",count);
for(i=0;i<count;i++)
{
printf("%d ",b[i]);
}
printf(" ");
return0;
}
說明:剛剛在VC6.0下現寫的,附圖片
⑷ C語言:輸出數組中的全部素數
沒有安裝c的軟體,完整的給不了你,但是我這有一個類似的實例,我勸你別老靠別人的完整代碼,這樣自己有什麼好處呢?用別人的改成自己的也是一個不錯的選擇,
題目:判斷101-200之間有多少個素數,並輸出所有素數。
程序源代碼:
#include
"math.h"
main()
{
int
m,i,k,h=0,leap=1;
printf("\n");
for(m=101;m<=200;m++)
{
k=sqrt(m+1);
for(i=2;i<=k;i++)
if(m%i==0)
{leap=0;break;}
if(leap)
{printf("%-4d",m);h++;
if(h%10==0)
printf("\n");
}
leap=1;
}
printf("\nThe
total
is
%d",h);
}
⑸ C語言求素數數組
#include <stdlib.h>
#include <stdio.h>
void readwriteDat();
void num(int m, int k, int *xx)
{
int n=0,i,b;
while(m++)/*死循環*/
{
for(i=2;i<m;i++)
{
if(!(m%i))
{b=0;break;}
else b=1;
}
if(b) xx[n++]=m;/*if(n==k-1) break;
}
}
int main()
{
int m, n, xx[1000];
printf("\nPlease enter two integers:");
scanf("%d%d", &m, &n);
num(m, n, xx);
for (m=0; m<n; m++)
printf("%d ", xx[m]);
printf("\n");
readwriteDat();
system("pause");
return 0;
}
void readwriteDat()
{
int m, n, xx[1000], i;
FILE *rf, *wf;
rf = fopen("in.dat", "r");
wf = fopen("out.dat", "w");
for (i=0; i<10; i++)
{
fscanf(rf, "%d %d", &m, &n);
num(m, n, xx);
for (m=0; m<n; m++)
fprintf(wf, "%d ", xx[m]);
fprintf(wf, "\n");
}
fclose(rf);
fclose(wf);
}
求一個大於m且僅靠m的k個素數存入數組xx傳回,不知哪裡出錯,除了num函數,其他都是題目給的
⑹ 用c語言用數組求100之內的素數
#include <stdio.h>#define MAX 100int PrimeNum( int i ) //判斷函數{ int j; for( j = 2; j*j < i; j++ ) { if( i % j == 0 ) return 0; } return 1;}int main( ){ int drr[MAX] = { 0 }; for( int i = 2; i < MAX; i++ ) // 循環判斷 { int flag = 0; flag = PrimeNum( i ); if( flag ) { drr[i] = flag; } } for( int i = 2; i < MAX; i++ ) // 輸出 { if( drr[i] == 1 ) printf(" %d, ",&drr[i] ); if( i%10 == 0 ) printf(" \n "); } getch(); return 0;} // 完了, 程序雖然簡單勒點,可已滿足樓主的要求
⑺ C語言程序,利用數組,找出100以內素數,該怎麼寫程序
#include<stdio.h>
intmain()
{chari,j,a[101]={0};
for(i=2;i<=10;i++)
if(!a[i])
for(j=i+i;j<101;j+=i)
a[j]=1;
for(i=2;i<101;i++)
if(!a[i])printf("%d",i);
return0;
}
⑻ c語言用數組解決求100以內素數
把for(q=0;q<=100;q++)改成for(q=1;q<100;q++)——因為a[0]==1,肯定不是素數,且=100就越界了。
for(o=2;o<=a[q];o++)改成for(o=2;o<a[q];o++)——因為任何數都會被自身整除。
把if(p=1)改成(p==1)——if(p=1)這樣寫這個if如同白設,因為p=1總是為「真」。
⑼ C語言:用數組求1~n內所以素數
代碼資料:
#include "stdio.h"
#include <stdlib.h>
int main(int argc,char *argv[]){
int i,j,n;
char *p;
printf("Enter n(int n>0)... n=");
if(scanf("%d",&n)!=1 || n<1){
printf("Input error, exit... ");
return 0;
}
if((p=(char *)malloc(++n))==NULL){
printf("Application memory failure... ");
return 0;
}
for(p[0]=p[1]=0,p[2]=1,i=3;i<n;p[i++] = i&1 ? 1 : 0);
for(i=3;i<n;i++)
if(p[i])
for(j=i+2;j<n;j++)
if(p[j] && j%i==0)
p[j]=0;
for(i=2;i<n;i++)
if(p[i])
printf("%d ",i);
free(p);
printf(" ");
return 0;
}