标签 语法 下的文章

C 输出10°到20°的正弦值

这里我们用到了<math.h>中的M_PI常量(π的值),以及sin()函数,so easy。

sin()接受的是弧度制的值,所以我们要用这个常量来转换一下,剩下的,没什么难度了。

#include <stdio.h>
#include <math.h>

int main(void)
{
    int degree;
    double radian;

    for (degree = 10; degree <= 20; degree++) {
        radian = M_PI * degree / 180;
        printf("%d   %f\n", degree, sin(radian));
    }
    return 0;
}

PHP 代码行数倒计时 说说两个文件函数

前两天看到交大平均4年10W行,然后就跃跃欲试写了一个简单的统计,其实还是表单输入而已,想了想用数据库未免太过浪费,文件函数正好不熟,故用之。

因为很简陋,没有过滤什么的,所以不演示了,自己跑下便知:

<!DOCTYPE html>
<html>
<head>
    <title>Count Code</title>
</head>
<body>
    离10W代码量还有:
    <?php
        $file = fopen('count.txt', 'r');
        $num = fgets($file);

        echo number_format($num);
        fclose($file);
    ?>
    <br/>
    <form action="index.php" method="post">
        <input type="text" placeholder="输入这次的代码行数" name="line" />
        <input type="submit" value="提交" />
    </form>
    <?php
        if ($_SERVER['REQUEST_METHOD'] === 'POST') {
            $line = $_POST['line'];
            $now = $num - $line;
            file_put_contents('count.txt', $now);
        }
    ?>

</body>
</html>

- 阅读剩余部分 -

C printf()和scanf()的*修饰符

关于printf()scanf()有个神奇的*修饰符,他和通配其实没什么关系,而且printfscanf的作用不一样,所以一个个来看吧。

#include <stdio.h>

int main(void)
{
    unsigned width, precision;
    int number = 256;
    double weight = 242.5;

    printf("What field width?\n");
    scanf("%d", &width);
    printf("The number is: %*d: \n", width, number);
    printf("Now enter a width and a precision: \n");
    scanf("%d %d", &width, &precision);
    printf("Weight = %*.*f\n", width, precision, weight);
    return 0;
}

- 阅读剩余部分 -

C 总结一下 类型与格式说明符对应表

可能会有错吧,因为光一张基本类型表感觉还是一团糟。

int %d
double/float %f
long %ld
long long %lld
char %c
short %hd
unsigned int %d
unsigned short %hu
八进制short %ho
unsigned long %lu
long double %Lf
十六进制long double %la (最后p10 表示2^10 p 表示2的指数)
指数计数法 %e (E10 表示10^10)
浮点型%g http://codesky.me/archives/c-percentg.wind

八进制 %0
十六进制 %x
前面加#如%#0则会输出如0111 %#x 如 0x2f

C 回车符\r的效果

\r叫回车符,一直没明白,回车和换行有什么区别,从理解上,回车按下去,不就换行了吗。不过亲自尝试一下,会发现截然不同。

#include <stdio.h>

int main(void)
{
    float salary;

    printf("\aEnter your desired monthly salary: ");
    printf("$_______\b\b\b\b\b\b\b");
    scanf("%f", &salary);
    printf("\n\t$%.2f a month is $%.2f a year.", salary, salary * 12.0);
    printf("\rGee!\n");
    return 0;
}

- 阅读剩余部分 -

C 转义字符序列

\a 响铃符
\b 回退符
\f 换页符
\n 换行符
\r 回车符
\t 横向制表符
\v 纵向制表符
\\ 反斜杠
\? 问号
\' 单引号
\" 双引号
\ooo 八进制数
\xhh 十六进制数
\0 空字符(NULL)

其中\ooo代表1-3个八进制数,\xhh代表一个或多个十六进制数。
举例可见http://codesky.me/archives/c-variable-const-type.wind

NULL表示值为0的字符,其数字值是0
字符串内部使用一个空字符\0作为结尾,所以储存字符串的物理单元比双引号内的字符数多一个。

可见:http://codesky.me/archives/c-variable-const-type.wind

C 格式说明

%d 按照十进制整数型打印
6d 按照十进制整数型打印,至少6个字符宽
%f 按照浮点数打印
%.2f 按照浮点数打印,小数点后有两位小数

什么是字符宽请见:http://codesky.me/archives/c-str-width.wind

printf()还支持以下格式:
%o 表示八进制数
%x 表示十六进制数
%s 表示字符串
%% 表示百分比

复习一下PHP中:

八进制符号数值前加0;十六进制加0x。
表达式计算结果都以十进制输出。

From:http://codesky.me/archives/php-scalar-type.wind

C 变量与常量 数据类型

终于正式开始学C做笔记了 本来想一长篇说点的,想想还是边看边记,记得少点搜索起来方便。

变量与常量的命名规范与PHP类似,常量全部用大写字母,而变量使用小写字母,C也同样区分大小写,命名时不要以下划线_开头。局部变量一般使用较短的变量名,外部变量一般使用较长的名字。

保留字符的问题就不多说了,差不多就是那回事。

- 阅读剩余部分 -

C 规范注释方法

标准C中的注释方法只有/* */一种,虽然code::blocks或者vs都吃// rcomment,不过还是不规范……题目中发现的问题。

C 外部变量的使用

书中看到这样一段目前仅仅根据自己的理解mark一下,说不定理解的不正确。

外部变量似乎和全局变量是差不多一个意思的(函数中的局部变量在C中称作自动变量)。

外部变量必须定义在所有函数之外,且只能定义一次,这点很好理解,变量自然是唯一的,在每个需要访问外部变量的函数中,必须声明相应的外部变量,此时说明其类型。

显示声明用extern,某些情况下可以省略,那就是外部变量的定义出现在他所使用的函数前(先定义在使用,我觉得在正常不过)。

举个例子:

- 阅读剩余部分 -