Ⅰ 如何校验和是通过一定的算法扫描一个数据计算出的一个数值。用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);
}
上机运行的时候,把注释全删了吧,要不然可能运行出错,多体会一下吧,这只是其中的一种方法而已,多上机运行代码,理解下里面的逻辑,好运。