Ⅰ 如何校驗和是通過一定的演算法掃描一個數據計算出的一個數值。用C語言
#include<stdio.h>
intQuicksum(char*str)//用指針做校驗函數的參數,來接收被校驗的字元串A;
{
intsum=0,loc=1,i,n;//sum代表校驗和,loc代表每個字元在字元串A里的位置;
char*p;
p=str;//將被校驗字元串A的地址賦值給字元指針p,用p表示位置;
n=strlen(p);//用strlen函數求出A的有效長度;
for(i=0;i<n;i++)//注意循環的次數。體會i<n的意思,保證能計算到每個字元
{
if((*p)==''){p++;loc++;continue;}//如果遇到空格,就將位置指針向後移動一個,跳過空格
//注意loc也要增加一,為了正確記錄每個字元的位置
sum+=((*p-'A')+1)*loc;//如果此處不是空格,就根據校驗計算該位置所代表的和,進行累加
loc++;//將位置指針移動到下一個字元,同時loc也跟著變化
p++;
}
returnsum;//返回校驗和
}
voidmain()
{
intjiaoyanhe;
char*string;
printf("Pleaseinput(A-Z):");
gets(string);//使用gets函數輸入字元串;
jiaoyanhe=Quicksum(string);//調用Quicksum函數進行校驗和的計算。
printf("jiaoyanhe:");
printf("%d ",jiaoyanhe);
}
上機運行的時候,把注釋全刪了吧,要不然可能運行出錯,多體會一下吧,這只是其中的一種方法而已,多上機運行代碼,理解下裡面的邏輯,好運。