當前位置:首頁 » 編程語言 » cpu運行超時c語言
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

cpu運行超時c語言

發布時間: 2022-12-19 18:27:06

A. c語言大師請給我寫一個c程序用來測試我機器CPU滿負荷工作

這個一般不能做到。

  • 一般的C語言編譯器會限製程序的資源使用量(如CPU不超過40%),超過設定時,編譯出來的程序會提示「未響應」而停止工作,不會造成電腦滿負荷工作的情況。

  • 實現滿負荷工作可以用一些拷機軟體,比如SuperPI,來測試處理器的性能。

  • 但對於時間的記錄,可以運用<time.h>的函數來實現,用法如下:

time_tstart,end;
start=time(NULL);//ortime(&start);
//計時中
end=time(NULL);
printf("time=%d ",difftime(end,start));
  • 這里的輸出單位為秒。如要精確到毫秒的計時,可以調用clock():

clock_tstart,end;
start=clock();
//計時中
end=clock();
printf("time=%f ",(double)end-start)/CLK_TCK);

這里end和start得到的是計算機時鍾的tick數,換算成毫秒需要除以常數CLK_TCK,換算成秒除以常數CLK_TCKCLOCKS_PER_SEC。

B. c語言 運行超時 如何改進

a[i]=malloc(sizeof(char)*10000);
改為:
a[i]=(char*)malloc(sizeof(char)*10000);

malloc需要指定強制類型轉換

C. 為什麼這個C語言程序會運行超時,怎麼改進

代碼段中的

while(m%b!=0)
b++;
if(m==b)
printf("%5d",m),c++;

改為

for(;b*b<=m;++b)

if(m%b==0)

break;

if(b*b>m)

{printf("%5d",m),c++;}

D. c語言問題,運行時怎麼顯示超時了

按照操作系統中的說法,它給每一個進程都設定了時間的上限,超過一定的時間後就會報錯,所以,可能是你寫的程序裡面演算法使用的循環次數太多,或者是你的代碼裡面出現一些因為打字錯誤而導致的死循環(我以前經常犯這種錯誤)。總之,仔細檢查你的代碼,興許可以發現錯哪兒了。
#include<stdio.h>
int main()
{ int highapple[10];
int hightt;
int i,t=0;
for(i=0;i<10;i++)
{
scanf("%d%c",&highapple[i]);
}
scanf("%d",&hightt);
for (i=0;i<10;i++)
{
if(highapple[i]<=hightt+30)
{
t++;
}
}
printf("%d",t);
return 0;
if(highapple[i]<100&&highapple[i]>200&&hightt>120&&hightt<100)
{
return 0;
}
}

E. C語言 運行超時。。

- -
童鞋。。。你不知道遞歸相對於循環來說比較慢的嗎。。。是使用for循環來,如果不行我就沒轍了
其實 if 那一句可以改成n<=1

F. 我的c語言中為什麼會超時

如果沒弄錯的話,應該是程序效率太低的緣故
#include
void
judge(int
m,int
n){
int
i,j,count;
count=0;
for(i=1;i<=n;i++){
j=n-i;/*有i+j==n
這個判斷的話
j的循環沒意義*/
if(
(i*2+j*4)==m
){
printf("%d
%d\n",i,j);
count++;
}
}
if(count==0)
printf("error\n");
}
main(){
int
m,n;
while(scanf("%d
%d",&m,&n)
&&m
&&n)
judge(m,n);
}
/*輸入可以這樣做,反正是判斷零結束*/

G. 請問C語言中「佔用CPU時間超限」的錯誤是單純因為死循環引起的嗎

還有的是因為轉換類型而造成的```比如23本來是整形的``但是如果你轉換成雙精度實型``那有效數字達到16位數``在內存中是64位存儲```如果一個C程序有很多這樣的轉換``那就會造成CPU工作負荷過大時間超限而無法進行```

H. 我想問一下我這個c語言程序為什麼運行超時!需要怎麼樣修改呢

#include<stdio.h>
#include<stdlib.h>
/*
Name:
Copyright:
Author:
Date:28/01/1421:12
Description:
有n個格子,從左到右放成一排,編號為1-n。
共有m次操作,有3種操作類型:
1.修改一個格子的權值,
2.求連續一段格子權值和,
3.求連續一段格子的最大值。
對於每個2、3操作輸出你所求出的結果。
輸入格式
第一行2個整數n,m。
接下來一行n個整數表示n個格子的初始權值。
接下來m行,每行3個整數p,x,y,p表示操作類型,p=1時表示修改格子x的權值為y,p=2時表示求區間[x,y]內格子權值和,p=3時表示求區間[x,y]內格子最大的權值。
輸出格式
有若干行,行數等於p=2或3的操作總數。
每行1個整數,對應了每個p=2或3操作的結果。
樣例輸入
43
1234
213
143
314
樣例輸出
6
3
數據規模與約定
對於20%的數據n<=100,m<=200。
對於50%的數據n<=5000,m<=5000。
對於100%的數據1<=n<=100000,m<=100000,0<=格子權值<=10000。
*/

typedefstructm0
{
intp;
intx;
inty;
}h;

intmain()
{
intn,m,i,*q=NULL,j,sum;
h*mm=NULL;
printf("輸入第一組參數:nm
n表示有多少個數據
m表示接下來m行的輸入參數pxy。 ");

scanf("%d%d",&n,&m);
q=(int*)malloc(sizeof(int)*n);//hanson--為初始數據分配單元
if(q==NULL){
printf("memoryallocateerror. ");
}
//加入判斷
mm=(h*)malloc(sizeof(h)*m);//hanson--為m行的輸入數據分配單元
//加入判斷
if(mm==NULL){
printf("memoryallocateerror. ");
}

for(i=0;i<n;i++){
printf("輸入第%d個數: ",i+1);
scanf("%d",&q[i]);
}

//debug
for(i=0;i<n;i++){
printf("%10d",q[i]);
if((i+1)%5==0){
printf(" ");
}
}
//debugend

printf(" 命令格式:pxy
p:1修改數據,x數據是y
2求xy之間的和
3求xy之間的最大值 ");

printf(" 共有%d條命令 ",m);

for(i=0;i<m;i++){
printf("輸入第%d條命令 ",i+1);
scanf("%d%d%d",&(mm[i].p),&(mm[i].x),&(mm[i].y));
}

for(i=0;i<m;i++)
{
sum=0;
switch(mm[i].p)//hanson--命令
{
case1:
q[mm[i].x-1]=mm[i].y;
break;
case2:
//sum清零==在這里清零==而不是上面
sum=0;//hanson
for(j=mm[i].x-1;j<=mm[i].y-1;j++)
sum+=q[j];
printf("%d ",sum);
break;
case3:
sum=q[mm[i].x-1];

for(j=mm[i].x-1;j<=mm[i].y-1;j++)
if(sum<q[j])
sum=q[j];
printf("%d ",sum);
break;
}
}

getchar();
getchar();

return0;
}

1、有幾個小問題,幫你修改了,你看下。有注釋

2、哪裡超時?==調試內容是什麼?

I. 【C語言新手問題】這個程序超時怎麼辦

你好,你要優化時間效率。這里可以考慮在計算和的平方之前,對於根本不符合的直接排除。
1.首先,對於數x,它的平方根不可能超過sqrt(x);所以當你計算出兩部分和的時候,先檢查這個條件是否滿足,不滿足則continue下一輪循環
2.一個數x平方的個位數跟x的個位數存在一定關系。
x個位數 x^2個位數
1或9 1
2或8 4
3或7 9
4或6 6
5 5
0 0
因此在計算兩部分和的時候如果1條件滿足,那麼檢測條件2。
根據上面兩個條件,應該可以提高一定的效率。
3.應用多線程,這樣同時可以處理幾個數據,不過你的演算法就要修改一下了。

J. 我這C語言為什麼超時 啊 要怎麼改

求余是一個挺耗時的操作,我不知道你寫的是什麼題目,建議少用求余,當數字大,循環多的時候,求余挺耗時的,你可以考慮換一下思路