免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2429 | 回复: 16
打印 上一主题 下一主题

我新人向老前辈们请教个问题。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-01 23:03 |只看该作者 |倒序浏览
关于这个
#include<stdio.h>

main()
{
        char c1, c2;
        printf("请输入你需要表示的整数值: \n");
        scanf("%d, %d", &c1, &c2);

        printf("输出整数对应的字符: \n");
    printf("%d对应的字符是: %c\n", c1, c1);
    printf("%d对应的字符是: %c\n", c2, c2);
}
我想把它反过来输入字母得出响应的ASC11码
#include<stdio.h>

main()
{
        int a, b;
        printf("请输入你需要表示的整数值: \n");
        scanf("%c, %c", &a, &b);

        printf("输出字母对应的数字: \n");
    printf("%c 对应的数字是: %d", a, a);
    printf("%c 对应的数字是: %d", b, b);
}
可是结果却不是ASC11吗是一个好大的负数为什么?

[ 本帖最后由 彩虹骑士 于 2007-6-1 23:08 编辑 ]

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
2 [报告]
发表于 2007-06-01 23:14 |只看该作者
原帖由 彩虹骑士 于 2007-6-1 23:03 发表
关于这个
#include<stdio.h>

main()
{
        char c1, c2;
        printf("请输入你需要表示的整数值: \n");
        scanf("%d, %d", &c1, &c2);

        printf("输出整数对应的字符: ...

看看 scanf 的手册吧,了解下其是如何工作的。

论坛徽章:
0
3 [报告]
发表于 2007-06-01 23:25 |只看该作者
我还没学到那呢谢谢你啊

论坛徽章:
0
4 [报告]
发表于 2007-06-01 23:26 |只看该作者
帮我改下可以吗

论坛徽章:
0
5 [报告]
发表于 2007-06-01 23:30 |只看该作者

回复 1楼 彩虹骑士 的帖子

#include<stdio.h>

int main()
{
    char a, b;
    printf("请输入你需要表示的整数值: \n");
    scanf("%c, %c", &a, &b);

    printf("输出字母对应的数字: \n");
    printf("%c 对应的数字是: %d  \n", a, a);
    printf("%c 对应的数字是: %d", b, b);
    return 0;
}

[ 本帖最后由 gaocheng 于 2007-6-1 23:33 编辑 ]

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
6 [报告]
发表于 2007-06-01 23:41 |只看该作者
原帖由 彩虹骑士 于 2007-6-1 23:26 发表
帮我改下可以吗

这两段程序要想获得预期的结果,不但代码要正确,而且使用编译好的可执行程序的方式也要正确。

1. 输入字符对应的 ASCII 码,打印对应的字符:

  1. #include<stdio.h>

  2. int main(void)
  3. {
  4.     int c1, c2;
  5.     printf("请输入你需要表示的整数值: ");
  6.     scanf("%d, %d", &c1, &c2);

  7.     printf("输出整数对应的字符: \n");
  8.     printf("\t%d 对应的字符是: %c\n", c1, c1);
  9.     printf("\t%d 对应的字符是: %c\n", c2, c2);
  10.     return 0;
  11. }
复制代码
$ ./a.out
请输入你需要表示的整数值: 97,98
输出整数对应的字符:
        97 对应的字符是: a
        98 对应的字符是: b

2. 输入字符,打印其对应的 ASCII 码。

  1. #include<stdio.h>

  2. int main(void)
  3. {
  4.     char a, b;
  5.     printf("请输入你需要表示的字符: ");
  6.     scanf("%c, %c", &a, &b);

  7.     printf("输出字符对应的数字: \n");
  8.     printf("\t%c 对应的数字是: %d\n", a, a);
  9.     printf("\t%c 对应的数字是: %d\n", b, b);

  10.     return 0;
  11. }
复制代码
$ ./a.out
请输入你需要表示的字符: a,b
输出字母对应的数字:
        a 对应的数字是: 97
        b 对应的数字是: 98

[ 本帖最后由 MMMIX 于 2007-6-1 23:53 编辑 ]

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
7 [报告]
发表于 2007-06-02 00:00 |只看该作者
原帖由 彩虹骑士 于 2007-6-1 23:03 发表
关于这个
#include<stdio.h>

main()
{
        char c1, c2;
        printf("请输入你需要表示的整数值: \n");
        scanf("%d, %d", &c1, &c2);

由于格式用 %d 而变量用 char 型,c2 可能会覆盖 c1 获取的值(或者 c1 可能会覆盖 c2 获取的值,和 c1、c2 在栈中的相对位置有关)。

#include<stdio.h>

main()
{
        int a, b;
        printf("请输入你需要表示的整数值: \n");
        scanf("%c, %c", &a, &b);

由于格式用 %c 而变量用 int 型,a 和 b 中未被更新的 bit 中包含垃圾数据(或随机数据)。

[ 本帖最后由 MMMIX 于 2007-6-2 00:24 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2007-06-02 00:06 |只看该作者
谢谢大家,

论坛徽章:
0
9 [报告]
发表于 2007-06-02 00:08 |只看该作者
\t%d 中的\t是什么意思还有&a中的&什么意思

论坛徽章:
0
10 [报告]
发表于 2007-06-02 00:09 |只看该作者
/t我知道了是水平跳格为什么不可以用\n
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP