万千只cnm 发表于 2021-5-13 18:44:08

checknum

checksum用一个signed char 类型变量进行计算初始值为-1当每个字符从标准输入读取时   值就被加到 checksum 中 ;
如果 checksum 产生了溢出 就被忽略 ;
最终以十进制 打印出 ;
如输入 Hellow world! 输出 102

这是我写的 怎么把溢出忽略呀
#include<stdio.h>
#include<stdlib.h>
int main(){
       
        signed char checksum= -1;
    int ch;
        while( ( ch=getchar() ) != '\n'){
                putchar(ch);
               
                checksum+= ch;
       
        }
                printf(" \n %d \n", checksum);
       
        return EXIT_SUCCESS;
}{:5_104:}

肖-肖 发表于 2021-5-13 18:58:09

本帖最后由 肖-肖 于 2021-5-13 19:06 编辑

怎么把溢出忽略呀?
    我想问什么是溢出忽略?就是叫它没有溢出码?
    可是你输入的字符的ASCII码的值大于了signed char所能承受的最大值的时候怎么可能不溢出呢?
    他是有符号的八位,所以范围为:-128~+127

yuxijian2020 发表于 2021-5-13 19:03:52

if(checksum + ch < 127)
            checksum += ch;
但是你这 102 怎么算出来的,我没太看懂....

万千只cnm 发表于 2021-5-13 19:11:52

yuxijian2020 发表于 2021-5-13 19:03
但是你这 102 怎么算出来的,我没太看懂....

例子答案 102.。。{:5_104:}

人造人 发表于 2021-5-13 19:29:29

万千只cnm 发表于 2021-5-13 19:11
例子答案 102.。。

看不懂你的问题,说一说这个102怎么来的,多少加多少?

万千只cnm 发表于 2021-5-13 20:13:14

https://blog.csdn.net/u014380694/article/details/92665664

万千只cnm 发表于 2021-5-13 20:13:44

万千只cnm 发表于 2021-5-13 20:13
https://blog.csdn.net/u014380694/article/details/92665664

咋来的大佬们

yuxijian2020 发表于 2021-5-14 08:28:41

我还以为是个啥,你就是缺了最后的 '\n'
把 '\n' 加到 checknum 里就行了
他说的忽略是编译器自动忽略,跟你没啥关系
页: [1]
查看完整版本: checknum