某双流一大学的C语言的一点教程

这是三篇教程曾经写在空间里的,但是我不想改格式了,等我有时间再说吧,我直接放进来。


鉴于目前很多人抱怨C语言的题难写,本阔耐就给大家讲讲如何处理一道C语言的题吧。

首先 我们要先读题,弄懂题目要让你干什么,然后我们可以构思一个伪代码(就是如同高中数学所学的流程框图),知道要怎么写程序(如果不知道怎么写,那这个教程可能没用)。有思路写程序后,我们就可以准备开始。 首先我们要写头文件(不赘述,有些函数需要其他头文件,遇见一个记一个就好)。

第二步我们要准备程序的输入,我们要看题,一般题目上会有说明,如:输入一个整数XXX、输入一串字符XXX。那么我们的Scanf里一般只读入对应数量的东西就好,不需要其他操作(若写的读入一个整数,则Scanf里只有一个%d)。 说明一下,请各位萌新,请区分好 Scanf和Printf的具体意思:大家可以这样理解 Scanf只能读入,你引号内输入再多东西,也不会输出的;Printf只能输出,你引号内加再多变量,这些变量也都不会变的。就如我们学校的系统来说:某题:请先输入一段提示语“请输入整数a:”后再读入一个整数,就别犯 printf(“请输入整数a:%d”,&a)的错误了。请先写一个printf然后再写一个scanf。 Scanf和Printf的显示内容的理解:用变量的值替换里面的特定的内容,然后在屏幕上显示出来。所以 请不要犯printf(“我输入一个整数A:%a”,a)这之类的错误。

我们可以理解为:这要输出一个整数,然后先用%d来代替这个不知道的整数,然后在后面用一个储存这个数的变量来代替。简单一点来说引号内放数据类型,逗号后放变量。然后加不加&这个取地址符号的问题也不说了。 有些东西虽然是输出,但是不一定代表要读。例如:做一个程序,输入A,若90<A<=100,则输出“A”,若0<=A<90,则输出“B”,这个输出的A、B是一个常数,你不需要读入这个A,B ,你可以直接给一个变量赋值为A 例如 char C=‘C’然后直接调用C就可以了。 对于变量的命名,别太简单,也不要同时出现例如A,a这样的两个变量。如嫌打字多麻烦,可以a1 a2。

某一双流大学的评分系统要求变量名不能太简单,所以我们可以用C1 C2 i1 i2等来命名。 然后我们就是写中间的实现算法的代码,这个把伪代码实现成C语言代码就好,具体怎么实现,看了书了解用法后,然后多写写就会了。 最后我们再编译,调试,把他样例数据输进去,我们看看自己的答案与题目给的样例是否一致,若一致,则程序大体没有问题,就可能是格式问题了。若 不对,慢慢下断点调试找问题(具体怎么调试请百度)。 然后就是格式问题 学校的格式要求比较高,能复制提示信息尽量复制,免得打错,格式就不整理了,等哪天有时间再写总结。


终于有时间说说我们学校这老旧的测评系统对C代码格式的要求了。

一、对于空行,目前我只注意到了有以下情况

<1>头文件写完了必须空一行。

<2>变量声明完了要空一行。

<3>在return 前面要空一行。

二、然后就是对于空格,有以下情况

<1>,;(逗号分号)后面如果有内容,则需要打印一个空格 eg: scanf(“%d%d”, &a1, &a2)

<2>如果出现运算符号(/*-+% && ||等)该符号前后均要空格eg: a1 = a2 + a3

<3>蓝色字体后面有内容的话,需要用一个空格eg: if ()……

三、缩进处理,有以下情况

<1>就一种情况:每组{ }里面的每一行均要用一个英文输入状态下的Tab键进行缩进。若是有多组{ },则该行外面有几层,则用几个Tab。eg:(希望QQ发出来格式没问题)

if (XXX)
{
    if(xxx)
    {
        haha();
    }
}

 四、特殊格式

<1>学校的if 等语句后面不能将{ }写在同一行,而是必须按格式写成

{
 ……
}
if (xxx)
{
 ……
}

接下来这几种写法就是错的

if (ture) { haha(); } 
也不能
if(ture) haha(); 

所以,我们还是老老实实的慢慢写吧,就算是代码太冗长也别嫌弃,别偷懒。

<2>对于变量命名,对于过于简单的命名,学校的系统会进行提示。若是想偷懒,可以这样命名a1,a2,a3……

<3>对于学校要求写的提示语,尽量把代码复制下来,然后编写,以免漏掉空格,或者标点符号不对,也省得切换为中文输入法,导致标点不对。 例如复制这段话: printf("\n计算结果为:…我们就直接在末尾按一次退格,把…删掉后,就接着写,printf("\n计算结果为:%d", a1);

啦啦,暂时就这么多吧,以后有啥问题出第三篇文章。有问题也可以在下面补充啦QAQ


C语言教程 第三波 关于程序输出的应用例子

1.先说 %c %d 互相输出的例子。

我们可以这样不准确的简单的理解:char 和 int 他们在电脑中的储存方式都差不多。输出整数型,则直接将二进制的数转换成十进制的数。输出字符型,则将二进制转换成十进制的数再通过ASCII码转换成字符(不准确,因为他并不会转换成十进制)。所以,通过这个不准确的过程,我们可以看出,输出char 和 int 是可以互换的。 比如 我们定义 int a=97;你如果输出“%d%c”,那么就是97a。所以,字符型也能简单的遵守加减运算法则。甚至 你可以这样操作 char a=‘a’,b=‘b’; printf("%d",a+b);那么输出就是195。 所以,理论上来说 字符型能做到的,整数型也能做到。 敲屏幕!!!注意:如果输入一个字符,那么请用一个字符型的变量来接收,整数请用整数来接收。输出时无所谓。否则可能会出现一些奇怪的情况。 总而言之,就是:输入对应,输出随意。

2.再说说怎么控制输出位数和内容。 比如%015.6f 这个意思就是输出一个总长度为15位的数,若不足15位则在前面补0,其中小数占6位。

 <1>.总长度:总长度就是相当于一个数的长度(小数点要占一位)。举个三个例子慢慢体会 。1234 01234 012.3456 他们的长度为4,5,8.

 <2>.小数位数:不多说,小数点后面的数字的位数。

 <3>.%05d 与%5d的区别:两者的意思都是输出一个长度为5的整数,然后%05d是不足5位用0补足,而%5d,就是用空格补足。例如 用printf(“%05d%5d”,a,a);其中 a=1234 则输出为01234 1234。(两者之间有个空格)。

3.还有些问题 对于char %f double %lf 在输出时,用%f没有什么差别,但是在读入的时候,char必须要用%f,double必须用%lf(别问我为啥,学校的系统有时喜欢搞事情).

4.printf里整数支持 8、10、16进制的输出(呵呵,就不支持二进制)。 例如 int a=10; printf("%o %d %x",a,a,a)的话,输出是12 10 a。

然后这次就讲完了,以后还是随缘佛系更新。

发布了63 篇原创文章 · 获赞 38 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/u011017694/article/details/102402787