A. c語言中數據類型, S為1000000.如何定義它的類型,具體怎麼寫
這個問題不好答,要看你的編程平台,不同平台的數據類型長度是不同的。如單片機和電腦兩個不同的平台。估計不是單片機的話,可以參考一下http://wenku..com/view/4c19ccbdc77da26925c5b0e4.html。long long 類型就行了。當然數據類型也有局限性,總有個大小范圍,如果你要存儲或運算的數據大於最大范圍,或小於最小范圍,你應該用程序分多步運算,就可以了
B. c語言中怎麼定義一個含有一百萬個元素的數組
主要是定義的位子決定了可定義數組的大小
#include <iostream>
using namespace std;
int s[1000000]; //在函數外定義是在堆棧中申請空間,所以可以開到很大的數組(但也不要太太太暴力— —),這樣定義是全局的
int main()
{
int t[10000]; //在函數內定義能申請到的空間就比較小了(貌似是在棧里),如果開的太大就會棧溢出(俗稱暴棧),直接反應是編譯不通過。。。。
return 0;
}
C. C語言產生0-1000000的隨機數
直接的方法是:
rand() % N;
返回從 0 到 N - 1 的數字(你就要把N設置為1000001)。但這個方法不好,因為許多隨機數發生器的低位比特並不隨機。一個較好的方法是:
(int)((double)rand() / ((double)RAND_MAX + 1) * N);
如果你不希望使用 double,另一個方法是:
rand() / (RAND_MAX / N + 1);
兩種方法都需要知道 RAND_MAX,而且假設 N 要遠遠小於 RAND_MAX。ANSI 規定標准頭文件 stdlib.h 中包含 RAND_MAX 的 #define。順便提一下,RAND_MAX 是個常數,它告訴你 C 庫函數 rand() 的固定范圍。你不可以設 RAND_MAX 為其它的值,也沒有辦法要求 rand() 返回其它范圍的值。如果你用的隨機數發生器返回的是 0 到 1 的浮點值,要取得范圍在 0 到 N - 1 內的整數,只要將隨機數乘以 N 就可以了。
D. c語言中L是什麼意思 如long int k=1000000L
意思是1000000是長整形,如果你不寫L,1000000可能是整形,float,double。但是一般不用寫L,編譯器會自動根據你的聲明處理的。
E. C中如何定義長度為1000000的整型數組啊
int n[1000000];這樣肯定是不行的,因為這樣定義的數組用的是棧內存,系統默認值為最大1Mb,一個int型佔4位元組這樣最大可以申請1024*1024/4=264144個,如果考慮到系統自身的佔用最大值約為25000個。int *p=(int *)malloc(1000000*sizeof(int));,這樣用的是堆內存,只要你內存有那麼多的連續空間就可以;例子如下:
#include<stdio.h>
#include<malloc.h>
int main()
{
int *p=(int *)malloc(1000000*sizeof(int));
//int p[1000000];
int i=0;
for(;i<1000000;i++)
printf("%d\n",p[i]=i);
free(p);
return 0;
}
F. C語言怎樣開一個大小為1000000的一維數組,直接弄好像運行不了。
通常用兩個辦法解決這個問題:
聲明一個全局數組。就是在所有函數之外聲明,如int a[1000000];就可以了。
在需要的函數中用malloc函數動態申請內存,如int *pt=(int *)malloc(sizeof(int)*1000000);就可以了。用完後要用free(pt);釋放所申請的內存空間。
G. 請問 我想用c語言輸出1-10000000 同時顯示計時器 怎麼弄啊 謝謝了
C語言計時可以用很多方法。
1. 如果是想使用秒級別的技術,可用使用C語言庫<time.h>自帶的clock()進行計時。如:
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
clock_t start = clock();
//do some process here
clock_t end = (clock() - start)/CLOCKS_PER_SEC;
cout<<"time comsumption is "<<end<<endl;
}
以上方法只能用於秒級別的計時。
2.如果想使用毫秒級別的計時可以使用2種方法。一種是使用linux的系統庫<sys/time.h>,一種是使用CUDA的cutil的庫。
A. 如果使用linux的系統庫,則可以使用如下方法:
#include <sys/time.h>
int main()
{
timeval starttime,endtime;
gettimeofday(&starttime,0);
//do some process here
gettimeofday(&endtime,0);
double timeuse = 1000000*(endtime.tv_sec - starttime.tv_sec) + endtime.tv_usec - startime.tv_usec;
timeuse /=1000;//除以1000則進行毫秒計時,如果除以1000000則進行秒級別計時,如果除以1則進行微妙級別計時
}
timeval的結構如下:
strut timeval
{
long tv_sec; /* 秒數 */
long tv_usec; /* 微秒數 */
};
上述方法可以進行微妙級別的計時,當然也可以進行毫秒和秒的計時。
B. 如果可以使用CUDA的話,則可以使用CUDA的sdk裡面的cutil庫裡面的函數。
#include <cutil.h>
int main()
{
unsigned int timer = 0;
cutCreatTimer(&timer);//創建計時器
cutStartTimer(&timer);//開始計時
// do some process here
cutStopTimer(&timer);//停止計時
cout<<"time is "<<cutGetTimerValue(&timer)<<endl;//列印時間
}
H. C語言 一個int型到底可以表示多大的數字
int是需要根據編譯器的大小進行表達的。
16位編譯器說明:int佔16位,內存2位元組,最大值:32767;
32位和64位編譯器:int佔32位,內存4位元組,最大值:21474836473位數的增加,那麼自然位數也在倍增。
決定int最大值的主要原因,根據編譯器類型不同而變化。所以某些編寫的程序,不能成功的在電腦中運行,多半與編譯器有關系,可能並不是程序的原因。一般程序的表達方式,最高位為符號位,位數為n位時,則最大值為2^(n-1)即2的n-1次冪。
(8)1000000用c語言表達擴展閱讀
符號積分命令int
int(fun):求函數fun的不定積分;
int(fun,var):求函數fun關於變數var的不定積分;
int(fun, var, a,b,):求函數fun的在[a,b]間的定積分或廣義積分;
示例
>> clear;syms x y z;
>> int(sin(x*y+z),z)
ans = -cos(x*y+z)
在MATLAB命令窗口中輸入doc int查看int的幫助信息。
I. C語言中如何表示數值的范圍
代碼如下:
#包括< stdio, h >
Intmain()
{
Int,n。
掃描文件(「% d % d」,& s & n);
S-;//s-1;我們把周一到周日的時間設為0到6
S+=n;
S%=7;//通過調制來限定結果
S++;//轉換回1-7表示
Printf("%d\n",s);//輸出結果
返回0;
}
(9)1000000用c語言表達擴展閱讀:
在C語言中,char一般取1個位元組,即8個二進制位。每一位都有兩個0或1的值。利用乘法原理,排列組合的個數是1002^8=256個排列。
如果是無符號字元類型,即無符號字元類型,那麼它總共可以表示256個無符號數字[0,255]。
如果它是帶符號的字元類型,即帶符號的字元或字元類型,它可以表示[-128,127],256個有符號的數字。
在有符號整數的表達式中,現在的計算機一般採用原代碼、問題代碼、補碼三種編碼方法。源代碼的表示,最高位是符號位,0是正的,答案1是負的。因此,帶符號的char類型的最大值的二進制位返回如下:
01111111//最高位是符號位,它是127
最小值的二進制位如下:
1000000//負值絕對值越大,值越小。是-128
J. 把1000000個人年齡排序,怎麼用C語言表達,,
你的編譯器是否是古老的過時的TC?
現在的編譯器
int
就是
long
int。
你寫的數組大小小於要求,需要6個0。
另外,需要開為
全局量
!放到
main(){}
以前,或
static
short
a[1000000];
就可以了。
年齡
最多
150歲,short
int
足夠。下標
用
long
int
就可以了。