《ios零基础教程》--scanf函数、基本运算

来源:互联网 发布:银行从业资格考试软件 编辑:程序博客网 时间:2024/05/17 01:46

今天学习了scanf函数、基本运算。

一、scanf函数


1、学习scanf函数,首先要理解地址运算符&,下面是关于地址运算符&获取内存的知识。

/* 1.内存寻址由大到小,优先分配内存地址比较大的字节给变量,也就是比如Oxffc4 > Oxffc1. 如下面的a、b、c地址值比较: a的地址是:0x7fff5fbff78c b的地址是:0x7fff5fbff788 c的地址是:0x7fff5fbff784 地址值:a > b > c  2.变量越先定义,内存地址就越大  3.取得变量的地址:&变量名  4.输出地址:%p  5.一个变量只有初始化之后才能使用 */#include <stdio.h>int main(int argc, const char * argv[]){    // 内存寻址由大到小    int a = 10;        int b = 20;        int c;        //&是一个地址运算符,取得变量的地址;    //%p用来输出地址        printf("a的地址是:%p\n",&a);        printf("b的地址是:%p\n",&b);        printf("c的地址是:%p\n",&c);        //由于变量c没有经过初始化,所以直接拿来使用是不对的    //int d = c + 1;        return 0;}


2scanf函数是一个阻塞式函数,使用之后需要用户手动输入内容。如下是scanf函数的简单使用。


#include <stdio.h>int main(int argc, const char * argv[]){    // 定义一个变量,用来保存用户输入的整数    int number;        //scanf函数只接受变量的地址    //scanf函数是一个阻塞式的函数,等待用户输入    //用户输入完毕后,就会将用户输入的值赋值给number变量    //函数调用完毕    scanf("%d",&number);            printf("用户输入的值是%d\n",number);        return 0;}

3、下面是scanf函数的一些其他用法总结。

1)可以输入字符串。

2)一次性输入多个数值,并且一某些符号离开。

3)如果scanf参数中以空格隔开,实际输入可以以空格、tab、回车作为分隔符

4)scanf中不能写\n

#include <stdio.h>int main(int argc, const char * argv[]){    /*1.可以输入字符串    char myc;    scanf("%c",&myc);    printf("输入的字符是%c\n",myc);    */        /*2.一次性输入多个数值,并且以某些符号隔开    int num1 ,num2;    scanf("%d,%d",&num1 ,&num2);    printf("num1 = %d,num2 = %d",num1 , num2);    */        //3.如果scanf参数中以空格隔开,实际输入可以以空格、tab、回车作为分隔符     int num1 ,num2;     scanf("%d %d",&num1 ,&num2);     printf("num1=%d, num2=%d\n",num1,num2);            /*4.scanf中不能写\n     int a;     scanf("%d\n",&a);//错误写法     printf("a的值是%d\n",a);     */     return 0;    }


4、关于scanf函数的练习。

/* 提示用户输出两个整数,计算并且输出两个整数的和 */#include <stdio.h>int main(int argc, const char * argv[]){    //1.定义用户输入第1个整数    int num1 , num2;        //2.提示用户输入第1个整数    printf("请输入第1个整数:\n");        //3.接收用户输入的第1个整数    scanf("%d",&num1);        //4.提示用户输入第2个整数    printf("请输入第2个整数:\n");        //5.接收用户输入的第2个整数    scanf("%d",&num2);        //6.计算和,并且输出    int sum = num1 + num2;    printf("%d + %d = %d\n",num1 ,num2 , sum);    return 0;}


二、基本运算

1、加+  、减-  、乘*  、除/  、模运算%

1)基本用法。

#include <stdio.h>int main(int argc, const char * argv[]){    int a = 10 + 1 + 3 - 3;        int b = -10;        int c = 10 * b;        int d = 10 / 2;        //取余运算(模运算)    //%两边都是整数    //%取余结果的正负性只跟%左边的数值有关    //%左边的被除数决定,被除数是整数,余数就是正数,反之则反    int e = -10 % (-3);    printf("%d\n",e);        return 0;}


2)自动类型转换和强制类型转化

#include <stdio.h>int main(int argc, const char * argv[]){    /*    //自动类型转换(double->int)    int a = 10.8;        //强制类型转换(int->double)    int b = (int) 10.5;    printf("%d\n",b);     */        double c = 10.6 + 6;        double d = 1/3;    //    double e = 3/2;//(这里的输出结果是1.000000,原因是首先是整数运算,结果是1,然后转换为1.000000)//    double e = 3.0/2;    double e = (double)3/2;    printf("%f\n",e);    return 0;}

3)练习

/* 1.提示用户输入两个整数,并输出两个整数的平均值(数学构造思维思考:先两数相加,再除2,得到平均值)  2.提示用户输入一个时间的秒数比如500秒就输入500,然后输出对应的分钟和秒,比如500s就是8分钟20秒 */#include <stdio.h>int main(int argc, const char * argv[]){    /*1.提示用户输入两个整数,并输出两个整数的平均值         //首先定义两个整数    int a ,b;        //提示用户输入两个整数    printf("提示用户输入两个整数:");    scanf("%d %d",&a,&b);        //平均值是两数相加之和除以2    int privite = (a + b)/2;    printf("两整数的平均值是:%d\n",privite);    */            /*2.提示用户输入一个时间的秒数比如500秒就输入500,然后输出对应的分钟和秒,比如500s就是8分钟20秒          //首先定义一个输入数和输出分钟和秒数     int time , f , m;          //提示用户输入时间     printf("用户输入秒数:");     scanf("%d",&time);          //将总秒数转换为分钟秒     f = time /60;     m = time % 60;          printf("对应的时间是%d分钟%d秒\n",f ,m);          */            //老师的方法和思路    //1.提示用户输入时间    printf("请输入一个时间值(秒):");        //2.接受用户输入的时间    int time;    scanf("%d",&time);        //3.转换成对应的分钟和秒    int minute = time / 60;//分钟    int second = time % 60;//秒        printf("%d秒= %d分钟%d秒\n",time ,minute ,second);        return 0;}

2、赋值运算

  • =     赋值运算符
  • +=   加值运算符
  • -=    减值运算符
  • *=    乘值运算符
  • /=    值运算符
  • %=   取余值运算符
#include <stdio.h>int main(int argc, const char * argv[]){    int a = 10;    // a = a + 5;        //复合赋值运算符    a += 5;// 既是a = a + 5;        a *= 5;// 既是a = a * 5;        a += 5 + 6 + 4;//既是a = a + (5 + 6 +4);        printf("a的值是%d\n",a);        return 0;}

3、自增运算符

1)基本用法

#include <stdio.h>//注意:自增自减运算符不能用在常数上,比如 b = 10++;int main(int argc, const char * argv[]){    int a = 10;        a = a + 1;//11        a += 1;//12        a++;//13        ++a;//14        a--;//a -= 1; a = a - 1;        printf("a的值是%d\n",a);    return 0;}

2)++a 与 a++的区别

/* a++的结果:先将a的值赋给对象之后,再进行a的自增运算(先赋值,再自增) ++a的结果:进行a的自增自减运算之后,再将值赋给对象(先自增,再赋值)  */#include <stdio.h>int main(int argc, const char * argv[]){    int b;    int a = 10;        //其结果:b = 10 + 12;//    b = (a++) + (++a);      //其结果:b = 11 + 11;    b = (++a) + (a++);        printf("b =%d\n",b);    printf("a =%d\n",a);    return 0;}

今天就学了这么多,消化好了也感觉蛮有成就感!




0 0
原创粉丝点击