标题:关于c primer plus,函数章节我自己编译了一个程序但是运行结果不对
取消只看楼主
jdljy1997
Rank: 1
等 级:新手上路
帖 子:17
专家分:3
注 册:2016-11-16
结帖率:100%
已结贴  问题点数:20 回复次数:6 
关于c primer plus,函数章节我自己编译了一个程序但是运行结果不对
编写一个程序,使其从标准输入读取字符,直到遇到文件结尾。对于每个字符,程序需要检查并报告该字符是否是一个字母。如果是的话,程序还应报告该字母在字母表中的数值位置。例如,c和C的字母位置都是3。可以先实现这样一个函数:接受一个字符参数,如果该字符为字母则返回该字母的数值位置,否则返回-1。//这是题目
#include<stdio.h>

int letter(char *);

int main()
{
    char ch;
    printf("Input a char:");
    while(scanf("%c",&ch)!=EOF)
    {
        if(ch>='a'&&ch<='z')
        printf("%c is a letter.\n",ch);
        else if (ch>='A'&&ch<='Z')
        printf("%c is a letter.\n",ch);
        else printf("%c is not a letter.\n",ch);
        printf("the position of the char in ABC is: %d\n",ch,letter(&ch));
    }
    return 0;
}

int letter(char *ch)
{
    int num=-1;

    if(*ch>='a'&&*ch<='z')
    num=*ch-'a'+1;
    else if(*ch>='A'&&*ch<='Z')
    num=*ch-'A'+1;

    return num;
}
//这是我的code。
//这是运行结果
希望有大神指点
搜索更多相关主题的帖子: include letter 字母表 
2016-11-16 18:16
jdljy1997
Rank: 1
等 级:新手上路
帖 子:17
专家分:3
注 册:2016-11-16
得分:0 
有大神帮忙不
2016-11-16 19:23
jdljy1997
Rank: 1
等 级:新手上路
帖 子:17
专家分:3
注 册:2016-11-16
得分:0 
回复 3楼 xufan
显示的结果应该是显示字母在字母表中的排序,结果显示成在ascll表中的顺序了。而且,如果输入不是字母,返回值也不是-1.还莫名多了一个字符
2016-11-16 21:41
jdljy1997
Rank: 1
等 级:新手上路
帖 子:17
专家分:3
注 册:2016-11-16
得分:0 
回复 5楼 linlulu001
题目的要求是希望用函数来实现主体功能,我主要疑惑在于为什么我的返回值会是输入字符的ascll表的值
2016-11-16 21:46
jdljy1997
Rank: 1
等 级:新手上路
帖 子:17
专家分:3
注 册:2016-11-16
得分:0 
回复 4楼 炎天
多出一个字符的原因找出来了,谢谢,但还是想问一下,我的返回值还是ascll表的值,怎么让他的返回值变成在字母表中的排序,或不是字母的时候返回-1呢?
2016-11-16 21:51
jdljy1997
Rank: 1
等 级:新手上路
帖 子:17
专家分:3
注 册:2016-11-16
得分:0 
回复 9楼 linlulu001
好的,谢谢啦
2016-11-16 21:52
jdljy1997
Rank: 1
等 级:新手上路
帖 子:17
专家分:3
注 册:2016-11-16
得分:0 
回复 9楼 linlulu001
虽然结贴了,但还是想请教一下,我发现了自己的错漏在输出时未将字符在语句中展现,但不清楚为什么会造成我输出结果发生错误呢?求指教
2016-11-17 11:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-471205-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.265420 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved