⑴ 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;
}