写了个小东东,不具有实用价值,不过包含了很多数据类型的知识。包括各种数据类型以及各种初始化。和一点点的基本用法,涵盖了整型,字符型,枚举,数组等一些比较常见的类型的实用。上代码- #include<stdio.h>
- #include<string.h>
- int main()
- {
- printf("\n\n——————6种基本类型情况——————\n");
- //c语言的6总基本整型
- short a=1;
- int b=2;
- long c=3;
- float d=4.4f;
- double e=5.53;
- double e2=3.1562348432485654856241841;
- char f='a';
- printf("short 占用字节数为:%d\ta=%d\n",sizeof(short),a);
- printf("int 占用字节数为:%d\tb=%d\n",sizeof(int),b);
- printf("long 占用字节数为:%d\tc=%d\n",sizeof(long),c);
- printf("float 占用字节数为:%d\td=%f\n",sizeof(float),d);
- printf("double 占用字节数为:%d\te=%f\n",sizeof(double),e);
- //注意这里的格式控制,%m.nf-->m表示输出的列数,n表示小数后面的位数
- printf("double 占用字节数为:%d\te2=%20.15f\n",sizeof(e2),e2);
- printf("char 占用字节数为:%d\tf=%c\n",sizeof(char),f);
-
- //一维数组的整初始化
- int array10[5]={1,2,3,4,5};
- //一维数组的部分元素初始化,如果前面为几个为0,则写上,如果后面为0,系统自动补0;
- int array11[5]={0,0,1,3};
- //当元素固定的时候,可以不用写到底有几个
- int array12[]={1,2,3,4,5,6,7,8};
-
- //二维数组初始化,详情请看打印的结果
- int array20[2][3]={{11,22,33},{44,55}};
- int array21[2][3]={11,22,33,44,55,66};
- int array22[][2]={{111,222},{333,444},{555,666}};
- //打印array10[5]的情况
- printf("array10[5]的情况:\n");
- for(int i=0;i<5;i++)
- {
- printf("%d\t",array10[i]);
- }
- //打印array11[5]的情况,比较两个的异同
- printf("\narray11[5]的情况:\n");
- for(int j=0;j<5;j++)
- {
- printf("%d\t",array11[j]);
- }
- printf("\n\n——————二维数组情况——————\n");
- {
- //打印二维数组的情况
-
- //array20的情况
- printf("\narray20[2][3]的情况:\n");
- for(int i=0;i<2;i++)
- {
- printf("\n");
- int j=0;
- while(j<3)
- {
- printf("%d\t",array20[i][j++]);
- }
- }
- }
- //array21情况
- {
- printf("\narray21[2][3]的情况:\n");
- for(int i=0;i<2;i++)
- {
- printf("\n");
- int j=0;
- while(j<3)
- {
- printf("%d\t",array20[i][j++]);
- }
- }
- }
- printf("\n\n——————字符数组情况——————\n");
- //字符数组初始化,二维数组基本一样
- char charArr[10]={'I',' ','a','m',' ','h','a','p','p','y'};
-
-
-
- printf("\ncharArr的情况:\n");
- //printf("%s\n",charArr);//--->这是以字符串的方式输出charArr的值,但是%S是遇到\0结束,所以输出有乱码
- //输出charArray的情况
- for(int k=0;k<11;k++)
- {printf("%c",charArr[k]);}
- printf("\n");
-
- //字符串数组情况
- printf("\n\n——————字符串数组情况——————\n");
- //下面这三种初始化的效果是一样的,详情见输出
- char charArr1[]="I am happy too";
- char charArr2[]={"I am happy too"};
- char charArr3[]={'I',' ','a','m',' ','h','a','p','p','y',' ','t','o','o','\0'};
- //%s遇\0结束
- printf("%s",charArr1);
- printf("\n");
- printf("%s",charArr2);
- printf("\n");
- printf("%s",charArr3);
-
- printf("\n\n——————枚举类型情况——————\n");
- enum Weekday{monday=1,tuesday=2,wednesday,thursday,friday,saturday,sunday} workday,weekend;
- //也可以不声明有名字的枚举类型,而直接定义枚举变量
- // enum {monday,tuesday,wednesday,thursday,friday,saturday,sunday} workday,weekend;
- enum Color{red,black,yellow,blue};
- enum Color skirt=red;
- int day;
- //程序在理解,看懂这个其他也能做出来
- printf("今天是星期几?(为了做测试,请输入6)");
- scanf("%d",&day);
- if(day==saturday&&skirt==0)
- {
- weekend=saturday;
-
- //这儿我们可以看出,枚举中的成员是有值的,分别编号,从0开始
- printf("今天是%s,我们穿%s的skirt","weekend","red");
- }
- printf("\n\n——————结构体类型情况——————\n");
- //定义结构体
- struct Person
- {
- int age;
- double height;
- char *name;
- };
-
- struct Person tom={20,1.77,"tom"};
- //这种也是可以的,就是用(.)加成员的方法进行初始化,不过我的编译器好像不支持
- //struct Person Jerry={.name="jerry"};
- printf("我叫%s,今年%d岁,身高%4.2f\n",tom.name,tom.age,tom.height);
- // printf("我叫%s,今年%d岁,身高%4.2f\n",jerry.name,jerry.age,jerry.height);
-
- //结构体数组
- {
- printf("\n——下面用一个投票解释结构体数组——\n");
- printf("输入你选的人:AAA,BBB,CCC三人中选择一个");
- struct People
- {
- char name[20];
- int count;
- }leader[3]={"AAA",0,"BBB",0,"CCC",0};
- int i,j;
- char leader_name[20];
- for(i=0;i<6;i++)
- {
- scanf("%s",leader_name);
- for(j=0;j<3;j++)
- if(strcmp(leader_name,leader[j].name)==0)
- leader[j].count++;
- }
- printf("\n结果是:\n");
- for(i=0;i<3;i++)
- {
- printf("%5s:%d\n",leader[i].name,leader[i].count);
- }
- }
- return 0;
- }
复制代码 希望对入门新手有哪怕一点点帮助,我就满足了。
|
|