本文目錄一覽:
用c語言實現獲取終端命令,來配置參數,怎麼實現?
#include stdio.h
#include string.h
int main(int argc, char *argv[])
{
char set_leng[20] = {0};
if (strcmp(argv[1],”set_leng”) == 0)
strcpy(set_leng, argv[2]);
//演示一下
printf(“set_leng的值為%s\n”, set_leng);
}
如圖,左邊代碼,右邊是命令
若是圖片看不清楚請 右鍵-新窗口打開圖片。
望採納。
篩法求素數的C語言實現
1、演算法一:令A為素數,則A*N(N1;N為自然數)都不是素數。 #define range 2000bool IsPrime[range+1];//set函數確定i是否為素數,結果儲存在IsPrime[i]中,此函數在DEV C++中測試通過void set(bool IsPrime[]){int i,j;for(i=0;i=range;++i)IsPrime[i]=true;IsPrime[0]=IsPrime[1]=false;for(i=2;i=range;++i){if(IsPrime[i]){for(j=2*i;j=range;j+=i)IsPrime[j]=false;}}}2、
說明:解決這個問題的訣竅是如何安排刪除的次序,使得每一個非質數都只被刪除一次。 中學時學過一個因式分解定理,他說任何一個非質(合)數都可以分解成質數的連乘積。例如,16=2^4,18=2 * 3^2,691488=2^5 * 3^2 * 7^4等。如果把因式分解中最小質數寫在最左邊,有16=4^2,18=2*9,691488=2^5 * 21609,;換句話說,把合數N寫成N=p^k * q,此時q當然是大於p的,因為p是因式分解中最小的質數。由於因式分解的唯一性,任何一個合數N,寫成N=p^k * q;的方式也是唯一的。 由於q=p的關係,因此在刪除非質數時,如果已知p是質數,可以先刪除p^2,p^3,p^4,… ,再刪除pq,p^2*q,p^3*q,…,(q是比p大而沒有被刪除的數),一直到pqN為止。
因為每個非質數都只被刪除一次,可想而知,這個程序的速度一定相當快。依據Gries與Misra的文章,線性的時間,也就是與N成正比的時間就足夠了(此時要找出2N的質數)。 (摘自《C語言名題精選百則(技巧篇)》,冼鏡光 編著,機械工業出版社,2005年7月第一版第一次印刷)。代碼如下: #includeiostream#includecmathusing namespace std;int main(){int N; cinN;int *Location=new int[N+1];for(int i=0;i!=N+1;++i)Location[i]=i;Location[1]=0; //篩除部分 int p,q,end;end=sqrt((double)N)+1;for(p=2;p!=end;++p){if(Location[p]){for(q=p;p*q=N;++q){if(Location[q]){for(int k=p*q;k=N;k*=p)Location[k]=0;}}}}int m=0;for(int i=1;i!=N+1;++i){if(Location[i]!=0){coutLocation[i] ;++m;}if(m%10==0) coutendl;}coutendlmendl;return 0;}該代碼在Visual Studio 2010 環境下測試通過。
以上兩種演算法在小數據下速度幾乎相同。
c語言setbase能輸出3進位嗎
不能。
C語言setbase只能輸出二進位、八進位、十進位和十六進位,不能輸出三進位,如果要實現輸出三進位的功能,需要自己設計演算法。
C語言編譯器普遍存在於各種不同的操作系統中,其設計也影響了Java、Python等編程語言。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/312481.html