搜索
查看: 629|回复: 3
打印 上一主题 下一主题

A代表1分,B代表2分......Z代表26分

[复制链接]
跳转到指定楼层
楼主
发表于 2015-10-9 13:36:57 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
读入一串字母,字母之间用空格隔开,计算分值。
思路很简单的,A的ASCII码是65,减去64就代表1,B的ASCII码是66.........
代码如下:
[mw_shl_code=c,true]#include <stdio.h>
#include <string.h>
int main()
{       
    int i;
    char ch[200];
    int len=strlen(ch),s=0;
    printf("请输入大写字母,并用空格隔开,然后Enter\n");
    gets(ch);
    for(i=0;i<=len;i++)
                if(65<=ch&&ch<=90)        s+=ch-64;
    printf("%d\n",s);
        getch();
        return 0;
}
[/mw_shl_code]

结果却不能正确显示,看截图

分值1.PNG (6.07 KB, 下载次数: 9)

分值1.PNG

分值2.PNG (5.82 KB, 下载次数: 8)

分值2.PNG

分值3.PNG (5.96 KB, 下载次数: 10)

分值3.PNG
沙发
 楼主| 发表于 2015-10-9 13:38:42 | 只看该作者
就是找不到哪里有语法或逻辑的错误
板凳
 楼主| 发表于 2015-10-9 14:00:49 | 只看该作者
[mw_shl_code=c,true]#include <stdio.h>
#include <string.h>
int main()
{       
    int i;
    char ch[200];
    printf("请输入大写字母,并用空格隔开,然后Enter\n");
    gets(ch);
    int len=strlen(ch),s=0;
    for(i=0;i<=len;i++)
                if('A'<=ch&&ch<='Z')        s+=ch-64;
    printf("%d\n",s);
        getch();
        return 0;
}
[/mw_shl_code]
这样就对了

分值5.PNG (6.25 KB, 下载次数: 6)

分值5.PNG

分值4.PNG (5.33 KB, 下载次数: 8)

分值4.PNG
地板
 楼主| 发表于 2015-10-9 14:02:38 | 只看该作者
len=strlen(ch);要在gets(ch);之后才有正确长度
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表