| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 500 人关注过本帖
标题:新手上路问题多……这到底是为什么啊?
只看楼主 加入收藏
冯天华
Rank: 2
等 级:论坛游民
帖 子:28
专家分:24
注 册:2013-12-14
结帖率:50%
收藏
 问题点数:0 回复次数:7 
新手上路问题多……这到底是为什么啊?
编一个大小写转换,只不过是想加一个循环语句让程序可以重复执行。结果就出写了一个莫明的输出。望路过高手解答解答……
图片附件: 游客没有浏览图片的权限,请 登录注册



程序代码:
#include"stdio.h"
void main()
{
    char x,y,i;
    for(i=1;i<10000;i++)
    {
    printf("请输入一个字母:");
    x=getchar();
    if((x>=65)&&(x<=90))y=x+32;
    else y=x-32;
    printf("%d,%c\n",x,x);
    printf("%d,%c\n",y,y);
    }
}


[ 本帖最后由 冯天华 于 2014-1-18 14:58 编辑 ]
搜索更多相关主题的帖子: 新手上路 字母 
2014-01-18 14:55
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:0 
程序代码:
#include <stdio.h>

int main()
{
    for( ; ; )
    {
        printf("请输入一个字母:");

        int c = getchar();
        if( c == EOF )
            break;

        if( c < 0x20 )  // 非打印字符
            continue;

        char n = (char)c;
        if( c>='A' && c<='Z' )
            n = c + ('a'-'A');
        else if( c>='a' && c<='z' )
            n = c - ('a'-'A');
        else
            n = c;

        printf( "%d,%c\n%d,%c\n", c, (char)c, (int)n, n );
    }

    return 0;
}
2014-01-18 16:27
冯天华
Rank: 2
等 级:论坛游民
帖 子:28
专家分:24
注 册:2013-12-14
收藏
得分:0 
回复 2楼 rjsp
--------------------Configuration: 大小写转换 - Win32 Debug--------------------
Compiling...
zhuanhuan.c
E:\我的小程序\大小写转换\zhuanhuan.c(8) : error C2143: syntax error : missing ';' before 'type'
E:\我的小程序\大小写转换\zhuanhuan.c(9) : error C2065: 'c' : undeclared identifier
E:\我的小程序\大小写转换\zhuanhuan.c(13) : error C2143: syntax error : missing ';' before 'type'
E:\我的小程序\大小写转换\zhuanhuan.c(15) : error C2065: 'n' : undeclared identifier
执行 cl.exe 时出错.

大小写转换.exe - 1 error(s), 0 warning(s)

报错啊……难道是我们用的编写程序不一样?
2014-01-20 14:40
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:0 
应该是不一样吧,我用的是标准C语言,如果出现编译错误,那一定是编译器或设置有问题。
当然,这不是重点,重点是:你难道不会自己改一下?
2014-01-20 15:48
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
收藏
得分:0 
怎么这么多对回车符不处理的问题, 一天要来好几个. 书上都不讲的吗?
你没注意你说的那个莫明的输出: 10,
  (换行)
其实就是一个回车符, 而这个回车符就是你输入m后敲进去的那个.   

x=getchar();
你在这句后面加一个getchar();
2014-01-20 15:56
w851777025
Rank: 7Rank: 7Rank: 7
来 自:新疆
等 级:黑侠
威 望:2
帖 子:135
专家分:584
注 册:2014-1-19
收藏
得分:0 
修改如下:
程序代码:
#include<stdio.h>
void main()
{
    char x,y,z;
    int i;
    for(i=1;i<10000;i++)
    {
        printf("请输入一个字母:");
        x=getchar();
        z=getchar();
        if(x>='A' && x<='Z')
        {
            y=x+32;
        }
        else
        {
            y=x-32;
        }
        printf("%d,%c\n",x,x);
        printf("%d,%c\n",y,y);
    }
}

2014-01-20 16:55
w851777025
Rank: 7Rank: 7Rank: 7
来 自:新疆
等 级:黑侠
威 望:2
帖 子:135
专家分:584
注 册:2014-1-19
收藏
得分:0 
同为新手,不喜勿喷
2014-01-20 16:58
冯天华
Rank: 2
等 级:论坛游民
帖 子:28
专家分:24
注 册:2013-12-14
收藏
得分:0 
回复 5楼 pangshch
已解决,谢谢啦!
程序代码:
#include"stdio.h"
void main()
{
    char a,b,c;
    for(;;)
    {
    printf("请输入一个字母:\n");
    a=getchar();
    b=getchar();
    if(((a>='a')&&(a<='z'))||((a>='A')&&(a<='Z')))
    {
    if((a>='a')&&(a<='z'))c=a-32;
    else c=a+32;
    printf("%c,%d\n%c,%d\n",a,a,c,c);
    }
    else printf("Wrong enter!\n");
    }
}
2014-01-21 14:40
快速回复:新手上路问题多……这到底是为什么啊?
数据加载中...
 
   



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

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