本文目錄一覽:
- 1、c語言求小於lim的所有素數
- 2、求解C語言題:求小於lim的所有素數並放在aa數組中,該函數返回 所求出素數的個數。
- 3、C語言編寫一個計算當x趨於無窮時lim(3n2+n)/(2n2+3)的程序
- 4、1;i–)與(i=2;i’ title=’c語言中(i=lim;i>1;i–)與(i=2;i’>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;
}
供參考。
1;i–)與(i=2;i’>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]);
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/199370.html