本文目录一览:
- 1、c语言求小于lim的所有素数
- 2、求解C语言题:求小于lim的所有素数并放在aa数组中,该函数返回 所求出素数的个数。
- 3、C语言编写一个计算当x趋于无穷时lim(3n2+n)/(2n2+3)的程序
- 4、c语言中(i=lim;i>1;i--)与(i=2;i
- 5、C语言问题64 编写一个函数求出小于或者等于lim的所有素数并放在aa数组中。 例如输入12 输出2 3 5 7 11;
c语言求小于lim的所有素数
希望对你有所帮助!
#include stdafx.h
#include stdlib.h
int i,j;
int fun(int n,int aa[50]);
int main(int argc,char *argv[])
{
int num;
int aa[50]={0};
for(i=1;i50;i++)//初始化数组
aa[i]=aa[i-1]+1;
printf("请输入一个整数:");
scanf("%d",num);
printf("0-%d的素数有%d个",num,fun(num,aa));
printf("它们分别是:\n");
for(j=0;j50;j++)
printf("%-8d",aa[j]);
return 0;
}
int fun(int n,int aa[50])
{
int count = 0;
// 分配素数标记空间
char* flag = (char*)malloc( n+1 );
// 初始化素数标记
for (i=2; i=n; i++)
flag[i] = 1;
for (i=2; i n; i++)
{
for (j=2; i*j = n; j++)
{
// i*j是由i,j两整数相乘而得,显然不是素数
flag[i*j] = 0;
if(i*j50)
aa[i*j]=0;//不是素数的地方标记为零
}
}
for (i=2; i=n; i++)
if (flag[i])
count++;
free(flag);
return count;
}
求解C语言题:求小于lim的所有素数并放在aa数组中,该函数返回 所求出素数的个数。
#includelt;stdio.hgt;
#define MAX 100
int fun(int lim,int aa[MAX])
{
int a,i,t=0;
for(a=2;alt;=lim;a++)
{
for(i=2;ilt;a;i++)
{
if(a%i==0)
break;
}
if(i==a)
aa[t++]=a;
}
return t;
}
int main()
{
int lim,i,sum;
int aa[MAX];
printf("请输入一个整数:gt;");
scanf("%d",lim);
sum=fun(lim,aa);
for(i=0;ilt;sum;i++)
{
if(i%10==0i!=0)
printf("\n");
printf("%5d",aalt;igt;);
printf("\n");
}
printf("sum=%d\n",sum);
return 0;
}
扩展资料:
输出的值只是空格前面的字符是因为scanf函数的输入格式错误,输入参数的变量前需要加。
scanf("%s",s);改为scanf("%s",s);
scanf的用法是:scanf("格式控制字符串",输入参数一,输入参数二);
格式控制字符串包含:格式控制说明,普通字符。
1、格式控制字符串表示输入的格式,(int型用%d,float用%f,double型用%lf)
2、普通字符:在输出数据的时候,按照原样输出的字符,如:"fahr=%d,celsius=%d\n"中的fahr=,celsius=。
3、输入的参数是变量的地址,所以要在变量前面加。
C语言编写一个计算当x趋于无穷时lim(3n2+n)/(2n2+3)的程序
#includestdio.h
#includemath.h
double fun(double n)
{
double result=0;
result=(3*n*n+n)/(2*n*n+3);
return result;
}
int main()
{
double n=1.0,tmp1,tmp2;
while(n+210000000)
{
tmp1=fun(n+1)-fun(n);
tmp2=fun(n+2)-fun(n+1);
if(abs(abs(tmp2)-abs(tmp1))0.0000000001)
{
printf("lim=%f\n",fun(n+2));
break;
}
n=n+1.0;
}
return 0;
}
供参考。
c语言中(i=lim;i>1;i--)与(i=2;i
程序没有看。
就你说的那个问题,肯定是不相等的。
一般 从 0 - n 的遍历写成
int m,n;
for (iot i = 0; in+1; i++)或者
for (iot i = 0; i=n; i++)或者
从 m 到 m+ n
for (int i= m; im+n+1; i++)或者
for (int i= m; i=m+n; i++)或者
for (i = m+n; im-1;i--)或者
for (i = m+n; i=m;i--)或者
记住C语言循环条件是 允许执行循环体的条件而不是退出循环的条件
要是转不过来弯就自定义一个函数
bool exitwhen(bool allowloop){
return !allowloop;
}
然后循环体中就好写了
for(i=m; exitwhen(im+n);i++)
for(i=m+n; exitwhen(im);i--)
这还不理解就没办法了
C语言问题64 编写一个函数求出小于或者等于lim的所有素数并放在aa数组中。 例如输入12 输出2 3 5 7 11;
里层循环应该从2开始,你从1开始的话,每个数%1==0,永远成立,永远break
#includestdio.h
#includestdlib.h
#define M 100
void main()
{
int lim;
int aa[M];
int i,j,k=0;
scanf("%d",lim);
for(i=2;i=lim;i++)
{
for(j=1;ji;j++) //应该是for(j=2;ji;j++)
if(i%j==0)break;
if(j==i)
aa[k++]=i;
}
for(i=0;ik;i++)
printf("% d",aa[i]);
}