A. c語言 判斷一串數是否是迴文序列
if 判斷的時候,i的值經過上面的for循環已經等於6了
a[6]=? a[5-6]=?
如果這兩個值不等,自然輸出NO。
在if前再補一個for
#include "stdio.h"
void main()
{int a[6];
int i;
printf("Please input the string:\n");
for(i=0;i<6;i++)
scanf("%d",&a[i]);
for(i=0;i<6;i++)//補充到這里
if(a[i]!=a[5-i])
{printf("NO! The string isn't a palindrome string!\n");
return;
}
printf("Yes! The string is a palindrome string!\n");
}
B. C語言 判斷輸入的整數序列是否為等差數列
#include <stdio.h>int main(int argc,char*argv[]){ int a[30],i; printf("輸入整數序列\n"); for(i=0;i<30;i++) { scanf("%d",&a[i]); } int s; for(i=1;i<30;i++) { s=0; if((a[i]-a[i-1])!=(a[i+1]-a[i])) printf("不是等差數列 \n"); s=1; break; } if(s=1) { prinf("是等差數列"); } } 本人學過一陣c,技術一般,電腦沒裝vc 樓主試一試~
C. c語言中的迴文序列的判斷
我的計算機上沒有安裝C,不過,可以給你幾條建議,自己試著修改一下:
while
(n>0)
{
g[a++]=n%10;
n=n/10;
}
你最好寫成
while
(n>0)
{
g[a]=n%10;
n=n/10;
a++;
}
還有if(c==a)這一句,c是不會和a相等的,應該是c==a/2,
D. C語言找出兩個序列的中位數,完整代碼如下,幫忙看一下哪裡出了問題呢
A.length是數組data的長度,等於5,B.length=3,mid=A.length+B.length/2=5+3/2=6
查找中位數if (k = mid )把mid 的值賦給k,此時k =6就執行return A.data[i ]整個函數調用就結束。
E. C語言讀取計算機CPU的序列號、硬碟(網卡、機器名)
說實話,我在圖書館里看過一本叫《C語言編程實戰105例》的一本書,是半年前看的,那裡面有相關的代碼,但是你要CPU號這種高級的東東就不好辦了。我從昨天開始想你的問題。也沒有什麼進展,就到網上就找了找,發現網上有關於這方面的貼子,但那位高手用的是linux的環境做的,在win下不能運行,
http://topic.csdn.net/t/20061110/09/5147214.html這個是那個貼的鏈接。可能對你有點用吧。
對了要求CPU的序列號的話是要一個api及相關的庫,要是沒用這個是不可能做出正來的。我從別的地方搞了一個cpu信息函數,對你有用的:
DWORD MyCPUSpeed()
{
BSTR bstrMyCpuName=NULL;
BSTR bstrMyPropName = NULL;
VARIANT pVal;
char szText[256];
int nCpuNum=0;
DWORD dwCpuSpeed=0;
IWbemClassObject *pCpuInst=NULL;
IWbemQualifierSet* pQualSet = NULL;
bstrMyPropName = SysAllocString(L"CurrentClockSpeed");
if(bstrMyPropName == NULL)
{
return dwCpuSpeed;
}
while(1)
{
memset(szText,0,sizeof(szText));
sprintf(szText,"Win32_Processor.DeviceID=\"CPU%d\"", nCpuNum);
bstrMyCpuName = _bstr_t(szText);
if(bstrMyCpuName == NULL)
{
break;
}
if(pSvc->GetObject(bstrMyCpuName, 0L, NULL, &pCpuInst, NULL) != S_OK)
{
break;
}
if(pCpuInst->Get(bstrMyPropName, 0L, &pVal, NULL, NULL) == S_OK)
{
nCpuNum++;
dwCpuSpeed += pVal.lVal;
}
VariantClear(&pVal);
SysFreeString(bstrMyCpuName);
bstrMyCpuName = NULL;
}
if(bstrMyPropName != NULL)
{
SysFreeString(bstrMyPropName);
bstrMyPropName = NULL;
}
if(bstrMyCpuName != NULL)
{
SysFreeString(bstrMyCpuName);
bstrMyCpuName = NULL;
}
memset(szText,0,sizeof(szText));
sprintf(szText, "CPU個數: %d, CPU頻率: %ld Mhz", nCpuNum, dwCpuSpeed);
cout<<"------------------------"<<szText<<"-------------------------"<<endl;
return dwCpuSpeed;
}
還有一點,我在網上看到和你要求差不多的文章,但是它的代碼好像少了一點什麼,也做一下參考,我們一起研究一下也好。
http://e.codepub.com/2010/0523/22939_3.php
這是那個的鏈接,主要是沒有頭文件和宏什麼的。
F. C語言中的序列點是什麼意思
序列點,就是按時間順序排列的點。程序中,按計算順序的時間排列的點或位置。
例如:
C語言中有些「復雜表達式」(逗號表達式,連續賦值表達式)意思表達很含混。只有整個計算式計算完後,才塵埃落定,「副作用消失」,那麼,計算式計算完後才算一個 「序列點」。
函數調用前,也算是個 「序列點」。
ANSI/ISO C 標准:在上一個和下一個序列點之間,
一個對象所保存的值至多隻能被表達式的計算修改一次。
而且前一個值只能用於決定將要保存的值。
G. 用C語言怎麼得到電腦的CPU序列號,硬碟序列號等信息
獲取CPU序列號要使用 匯編指令
比較麻煩
static DWORD g_eax; // 存儲返回的eax
static DWORD g_ebx; // 存儲返回的ebx
static DWORD g_ecx; // 存儲返回的ecx
static DWORD g_edx; // 存儲返回的edx
void Executecpuid(DWORD veax)
{
asm("cpuid"
:"=a"(g_eax),
"=b"(g_ebx),
"=c"(g_ecx),
"=d"(g_edx)
:"a"(g_eax));
}
int isSupport;
void GetSerialNumber(WORD nibble[6])
{
Executecpuid(1); // 執行cpuid,參數為 eax = 1
isSupport = g_edx & (1<<18); // edx是否為1代表CPU是否存在序列號
if (FALSE == isSupport) // 不支持,返回false
{
return ;
}
Executecpuid(3); // 執行cpuid,參數為 eax = 3
memcpy(&nibble[4], &g_eax, 4); // eax為最高位的兩個WORD
memcpy(&nibble[0], &g_ecx, 8); // ecx 和 edx為低位的4個WORD
}
H. 用C語言如何編寫判斷一個字元序列是否是迴文的函數
//首先我認為迴文不一定是奇數個;也有可能是偶數個;只要這個字元串
//正讀跟反讀都一樣 那它就是迴文 所以不應該把字元串的個數當成是判斷迴文串的
//一個條件。
#include <stdio.h>
#include <string.h>
#include <conio.h>
bool huiWen(const char *p);
int main()
{
char test[225];
gets(test);
if(huiWen(test))
{
printf("是迴文!\n");
}
else
{
printf("不是迴文!\n");
}
getch();
return 0;
}
bool huiWen(const char *p)
{
int i=0,n=strlen(p);
while(p[i]==p[n-i-1] && i<n-i-1) //只要相等且還未相遇則繼續循環
{
i++;
}
return ((i<n-i-1)? false:true); //若i<n-i-1表示中途遇到不相等的字元而退出循環
}
I. 求 視頻序列中的人體運動目標檢測演算法程序!!用C語言編寫的!!
期待,,我也在關注這個問題
J. C語言編寫一個序列程序
#include<stdio.h>
intmain(void)
{
intsum=0;
intnum=0;
printf("inputanumber:");
scanf("%d",&num);
fflush(stdin);
for(inti=1;i<=num;++i)
{
if(i%2==0)
sum+=-i*i;
else
sum+=i*i;
}
printf("result:%d ",sum);
return0;
}