c语言累加和校验_如何校验和是通过一定的算法扫描一个数据计算出的一个数值。用C语言...

匿名用户

1级

2014-05-23 回答

#include<stdio.h>

int Quicksum(char *str) //用指针做校验函数的参数,来接收被校验的字符串A;

{

int sum=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++;

}

return sum; //返回校验和

}

void main()

{

int jiaoyanhe;

char *string;

printf("Please input (A-Z) : ");

gets(string); //使用gets函数输入字符串;

jiaoyanhe=Quicksum(string); //调用Quicksum函数进行校验和的计算。

printf("jiao yan he : ");

printf("%d\n",jiaoyanhe);

}

上机运行的时候,把注释全删了吧,要不然可能运行出错,多体会一下吧,这只是其中的一种方法而已,多上机运行代码,理解下里面的逻辑,好运。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值