C和指针 课后题 1.3

#include <stdio.h>

int main()
{
   char ch;
    char cheaksum = -1;

    while((ch = getchar()) != EOF && ch != '\n'){
        
        putchar(ch);

        cheaksum =(cheaksum+ch);
        

    }

        cheaksum =(cheaksum+ch);
            printf("\n%d\n",cheaksum);


}


编写一个程序,从标准输入读取一些字符,并把它们写到标准输出上。它同时应该计算checksum值,并写在字符的后面。checksum(检验和)用一个signed char变量进行计算,它初始为-1。当每个字符从标准输入读取时,它的值就被加到checksum中。如果checksum变量产出溢出,那么这些溢出就会被忽略。当所有的字符均被写入后,程序以十进制整数的形式打印出checksum的值,它有可能是负值。注意在checksum后面要添加一个换行符。在使用ASCII码的计算机中,在包含“Hello world!"这几个词并以换行符结尾的文件上运行这个程序应该产生下列输出: Hello world! 102

 
代码如上所示,写着很简单,调试了很久。仍然有疑惑
1.溢出是怎么处理的?
2.cheaksum =(cheaksum+ch);这一句代码在最后加一遍是为了加空格?(经验证确实是换行符);

  

posted on 2014-01-18 17:32  suixn  阅读(250)  评论(0)    收藏  举报