iOS战记

来源:互联网 发布:c语言输出文本文件 编辑:程序博客网 时间:2024/05/17 22:23

iOS战记  ----C语言基础语法之战(一)

                                                                                                     一个机械设计者的转行之战。

先跟大家分享一个小笑话,是关于什么年龄适合学习IT的一个问题。

问:我今年15了,学习编程是不是太晚了?
答:晚了,拟打娘胎里出来第一声哭的不是“hello world!”的时候,你就已经输在起跑线上了。

当你一直在纠结这个的时候,送你一句话:

优柔寡断,是人生最大的负能量。人生没什么好优柔的。从生命角度去看,你人生路径上的任何一种选择都是错误的,无论你怎么选,都有差错;因此,当选择来临,A和B,拿一个便走就是。人生没有对错,只有选择后的坚持,不后悔,走下去,就是对的。我最喜欢的一句诗就是:走着走着,花就开了。

下面言归正传。

作为一个大白(零基础)来说,学习C语言中就应该先记住C语言的语法,这是最基础的,在翻看以前的笔记时我发现一些初学者(就我而言)在C语言往往犯的错都是一些基本的语法错误,而一些复杂的算法逻辑错误却很少,所以我就针对我以前所犯的错误和积累的简单经验跟大家分享一下,作者能力有限,有错误之处欢迎大家批评指正。

1、先说一下一个微软的面试题。


scanf("%c %c",&a,&b);

注意:输入语句中的%c和%c之间有个空格,输入的时char类型,该怎么输入呢?

答案是:若a = 10;b = 5;输入10 5

⭐️注意⭐️:10和5之间一定要空格,因为要与scanf语句里面的输入一一对应,空格属于一个字符!

如果输入的时int类型的,则不必在意。


2、scanf语句中有个小点需要注意(苹果本的可以忽略),在控制台输入数值的时候一般外设键盘的最右边的 Enter键是不会执行的,需要中间的大Enter键才行。


3、随机数的选取,其中要注意一点就是会出现一个均匀随机和不均匀随机的问题。例如从30-70里面随机取值要比从10-20里面取值的概率要大。

unsigned int random = arc4random()%(70-30+1)+30;


4、对第三题里的unsigned我做一下解释,int整型占四个字节,能表示从-2的32次方到+2的32次方,而unsigned int只能表示0到+2的32次方,是无符号的整型。

所以上面的随机变量random的类型就是unsigned int。


5、braeak 和continue在循环体里面的区别,再以后需要重复输入的时候有用。(例如模拟ATM机取钱,如果密码错误需要重新输入)

<span style="font-size:18px;">   int i = 1;    while (i < 50) {        i ++;        if (i % 4 == 0) {            continue;//跳出本次循环        }if (i % 10 == 4) {            break;//直接跳出循环        }        printf("%d  ",i);    }</span>

  

6、冒泡排序:是一个双循环。一句话记住-----⭐️for for if for⭐️

附加:循环是为数组而生的!不管是C语言中的for,还是Object-C中的for in,都是为了帮助数组实现功能的。

 //i是控制趟数   j控制次数

    

    int array[10] = {};

    for (int i = 0; i < 10; i ++) {

        array[i] = arc4random()%(40 - 20 + 1) + 20;

        printf("%d \n ",array[i]);//取20-40内的随机数。

         }

       

    for (int i = 0; i < 10 -1 ; i ++) {

        for (int j = 0; i < 10 - 1 - i; j ++) {

            if (array[j] > array[j + 1]) {

                int temp = 0;

                temp = array[j + 1];

                array[j + 1] = array[j];

                array[j] = temp;

            }

        }

    }

for (int i = 0; i < 10 -1 ; i ++) {

printf("%d",array[i]);

7、有人会感觉上面的代码怎么有两个变量” i “?我当时也很纳闷,这里牵扯到一个作用域的问题,两个” i “的作用域是不同的,并且小作用域的优先级(执行力)较高。

8、定义两个浮点型(float类型)的变量a和b,但是不能进行判定是否相等,即(a == b),这是不准确的,程序也会报错。

  附加:a%(4.0);是非法的表达式,取模运算两边必须都要为整数。


PS:一位全栈大神说过一句经典的话我很佩服,送给大家:
什么时候你的大脑还没记住而你的手指已经把代码敲出来的时候,你也就快成大神了!!!



今天到此为止,附赠一句:基础不牢,地动山摇。

1 0
原创粉丝点击