搜索
首页 电脑/网络 程序设计 C/C++

请问我的C程序错在哪里?

#include "stdio.h"main(){ char ch1,ch2; int n1,n2; ch1=getchar(); n1=ch1-'0'; printf("%d\n",n1); }为什么当我的输入大于9时,输出结果都是1?

全部回答

2018-04-03

0 0
    这个程序得目的是做什么用得?(发消息告诉我) 里面的ch2 和 n2都没用 你有没有输入10以外的其他?例如20,30,a,b,等。 此程序ch1存的是你键盘输入的第一字符,后面输入的一律不管。
  所以当你输入10以内时入11,12,……,储存的是字符分别是:1,2,……,ascll码就是49,50……,然后“-‘0’”,就是ascll码减去‘0’的ascll码值48。   你应该是输了10到20之间的数后,就放弃了再测试。
  当你输入第一位数字是1的数字时,ch1里存的都是'1',int值就是49,所以输出结果都是1。 。

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
C/C++
硬件
电脑装机
程序设计
互联网
操作系统/系统故障
笔记本电脑
反病毒
百度
软件
程序设计
C/C++
VB
数据库
汇编语言
JAVA相关
VC++
C#/.NET
其他编程语言
C/C++
C/C++
举报
举报原因(必选):
取消确定举报