托马斯童装:C语言怎样才算是入门

来源:百度文库 编辑:高考问答 时间:2024/04/28 20:19:14
今天我有一个程问我老师这个程序是这样的
main()
{
char c1,c2;
c1=gethch()
printf("c1='%c' or %d\n"c1,c1);
c2=c1*1;
printf("c2='%c' or %d\n",c2,c2);
}
于是我就问他这个程序那错啦我要他输出的结果是
a='a' or 97
b='B' or 98
应该怎么改啊于是他就对我说你对C语言还没有入门啊;;
你们看看这个程序;
代表是什么啊我左想右想还是想不通入门怎么样才算了入门啊
知道答案的请加我QQ274445669%%%%%%%%%%答案我不想知不是答案我想知道的是在这个程序中他怎么看得出我还没有入门咧怎么才算是入门给我讲讲听

你的老师嫉妒你那么快入门而已。
错误1:c1=gethch()
错在哪? 函数名称写错了,语句结束也没有分号。
应改为:c1=getch();

错误2:printf("c1='%c' or %d\n"c1,c1);
错在哪?第二个c1前面没有逗号把字符串跟变量分隔开。
应改为:printf("c1='%c' or %d\n",c1,c1);

其余地方均没有错误,能编译通过执行。楼上说的不能加''号和字符不能乘都是不正确的。
在C语言里,双引号内是完全允许适用单引号的。
我们可以通过查看getch()的原型得知它的返回值类型是整形的。C语言会在数值计算时自动进行类型转换,编译上并没有任何问题。不过这种方式并不推荐。

只不过楼主要得到
a='a' or 97
b='b' or 98
的输出结果这端程序还要修改以下地方:

原程序中: c2=c1*1;
应改为: c2=c1+1;

原程序中:
printf("c1=%c or %d\n",c1,c1);
printf("c2=%c or %d\n",c2,c2);
应改为:
printf("%c=%c or %d\n",c1,c1,c1);
printf("%c=%c or %d\n",c2,c2,c2);

综上看来,楼主只是比较马虎,并没有语言理解上的错误。不入门之说纯属无稽之谈,相反楼主在输出字符和ASCII码上的表现对新手来说,可圈可点。

你掌握Hello word就算入门了。
你掌握运算规则和数据类型在机内表示就算初级,
学到函数中级,
灵活掌握指针和数组算高级。
修改后的:

#include<stdio.h>
int main(void)
{
char c1,c2;
c1=gethch()
printf("c1=%c or %d\n",c1,c1);
c2=c1*1;
printf("c2=%c or %d\n",c2,c2);
return 0;
}

很多地方都错了,
先看格式,c1=gethar()后面没有";"
c2=c1+1
printf("c1='%c' or %d\n"这里有个逗号的!c1,c1);
还有,
你要想输出a='a' or 97
这么printf里面还用:"c1='%c'呢?
这样输出的肯定是c1='a' or 97 是吧?
错误的确不少。
另外,入门没入门不是老师决定的,是自己觉得的问题,不要管他怎么说,毕竟人跟人差不多,差的只是学的时间长短而已。努力学就行了,祝学业有成!
如果有兴趣,可以加群:3936027 一起学C!

C2=C1*1???什么意思啊?字符可以这样相乘的吗?应该是C2=C1+1吧

你写的那是C 语言吗

其实你的程序问题不大,谁说你没有入门啊?别听你的老师瞎说!
主要是你的那个getchar()写错了,编译不过。还有那个%c不要加‘’号。还有就是c2=c1+1。
大概是这样的:
#include<stdio.h>
main()
{
char c1,c2;
c1=getch()
printf("c1=%c or %d\n",c1,c1);
c2=c1+1;
printf("c2=%c or %d\n",c2,c2);

}