前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >复习C艹(更新中)

复习C艹(更新中)

作者头像
仇诺伊
发布2018-09-12 14:43:31
5980
发布2018-09-12 14:43:31
举报
文章被收录于专栏:佳爷的后花媛佳爷的后花媛

之前在win7中运行c/c++下个vc就可以编译运行了,现在换了Mac,上网一看需要下个xcode,哎哟,好大啊,当时又没网,捉急,咦,mac的终端可以编译cpp文件,天哪,棒呆了。 当然,使用mac的大佬们肯定知道,我这种小白还是记下来给小白一起看吧。

如何在mac下简单的使用c++

除了使用xcode,如果只是简单的学习,可以使用mac自带的终端实现。

  • 首先使用编辑器随便写一段c++的代码,存到一个文件夹中,格式为.cpp,
  • 然后打开终端,找到这个文件,使用g++ 编译,这是同目录中将会出现一个以.out结尾的文件,
  • 然后在终端运行./a.out,这是就能看到运行的结果了。 嘎嘎 。是不是很方便。不过后面还是打算下xcode,据说是Mac的神器,不知道是不是真的。 好了,顺便把复习c++的简单代码做个笔记。方便日后复习。看到结构体和指针的引用,感觉还是需要再多看两遍。哎,之前学的单点测试和多点测试早就还给谁谁谁了。捂脸。
#include<stdio.h>
// int main(){
//     int a;
//     char c,str[10];
//     scanf("%d%c%s",&a,&c,str);
//     printf("a=%d,c=%c,str=%s",a,c,str);
//     return 0;
// }

/* 转义*/
// int main(){
//     printf("abcd\nefg\nhijklmn");
//     return 0;
// }

/* %md*/
// int main(){
//     int a = 123,b = 1234567;
//     printf("%5d\n",a);
//     printf("%5d\n",b);
//     return 0;
// }

/* %0md */
// int main(){
//     int a = 123, b = 1234567;
//     printf("%05d\n", a);
//     printf("%05d\n", b);
//     return 0;
// }

/*%.mf 可以让浮点数保留m位小数输出*/
// int main(){
//     double d1 = 12.3456;
//     printf("%.0f\n",d1);
//     printf("%.1f\n",d1);
//     printf("%.2f\n",d1);
//     printf("%.3f\n",d1);
//     printf("%.4f\n",d1);
//     printf("%.5f\n",d1);
//     return 0;
// }

/* 使用getchar和putchar输入输出字符 */
// int main(){
//     char c1,c2,c3;
//     c1 = getchar();
//     getchar();
//     c2 = getchar();
//     c3 = getchar();
//     putchar(c1);
//     putchar(c2);
//     putchar(c3);
//     return 0;
// }

// int main(){
//     char str[5][5];
//     for(int i = 0;i<3;i++){
//         for(int j = 0;j<3;j++){
//             str[i][j] = getchar();
//         }
//         getchar();
//     }
//     for(int i = 0;i<3;i++){
//         for(int j = 0;j<3;j++){
//             putchar(str[i][j]);
//         }
//         putchar('\n');
//     }
//     return 0;
// }


//gets puts 输入输出
//gets用来输入一行字符串(注意:gets识别换行符\n做起输入结束,因此scanf完一个整数后,如果要使用gets,
//需要先用getchar接收整数后的换行符),并将其存放于一维数组中(或者二维数组的一个维中);puts用来输出一行字符串,即将一维数组(或者二维数组的一维)在界面上输出,并紧跟着换行
// int main(){
//     char str1[20];
//     char str2[5][10];
//     gets(str1);
//     for(int i = 0;i<3;i++){
//         gets(str2[i]);
//     }
//     puts(str1);
//     for(int i = 0;i<3;i++){
//         puts(str2[i]);
//     }
//     return 0;
// }

// int main(){
//     char str[15];
//     for(int i = 0;i<3;i++){
//         str[i] = getchar();
//     }
//     puts(str);
//     return 0;
// }

/* typedef 能给复杂的数据类型起一个别名*/
// typedef long long LL; //给long long起了一个别名LL
// int main(){
//     LL a=123456789012345LL,b = 234567890123456LL;
//     printf("%lld\n",a+b);
//     return 0;

// }

/* 常用math函数 */
/* fabs(double x) 取绝对值*/
// #include<math.h>
// int main(){
//     double db = -12.56;
//     printf("%.2f\n",fabs(db));
//     return 0;
// }

/* floor(double) and ceil(double)  向下取整,向上取整 */
// #include<math.h>
// int main(){
//     double db1 = -5.2,db2 = 5.2;
//     printf("%.0f %.0f\n",floor(db1), ceil(db1));
//     printf("%.0f %.0f\n",floor(db2), ceil(db2));
//     return 0;
// }

/* pow(double r,double p)  用于返回r^p,要求r和p都是double型 */
// #include<math.h>
// int main(){
//     double db = pow(2.0 ,3.0);
//     printf("%f\n",db);
//     return 0;
// }

/* sqrt(double x)  求算术平方根*/
// #include<math.h>
// int main(){
//     double db = sqrt(2.0);
//     printf("%f\n",db);
//     return 0;
// }

/* log(double x) 用于返回double型变量的以自然对数为底的对数 */
//c语言中没有对任意底数求对数的函数,因此必须使用换底公式来将不是以自然对数为迪的对数转换为以e为底的对数
// #include<math.h>
// int main(){
//     double db = log(1.0);
//     printf("%f\n",db);
//     return 0;
// }

/* sin(dounle x) cos(double x) tan(double x) 正弦值 余弦值 正切值*/
// #include<math.h>
// const double pi = acos(-1.0);
// int main(){
//     double db1 = sin(pi *45 / 180);
//     double db2 = cos(pi *45 / 180);
//     double db3 = tan(pi *45 / 180);
//     printf("%f,%f,%f\n",db1,db2,db3);
//     return 0;
// }

/* asin(dounle x) acos(double x) atan(double x) 反正弦值 反余弦值 反正切值*/
// #include<math.h>
// int main(){
//     double db1 = asin(1);
//     double db2 = acos(-1.0);
//     double db3 = atan(0);
//     printf("%f,%f,%f\n",db1,db2,db3);
//     return 0;
// }

/* round(double x) 将变量x四舍五入*/
// #include<math.h>
// int main(){
//     double db1 = round(3.40);
//     double db2 = round(3.45);
//     double db3 = round(3.50);
//     double db4 = round(3.55);
//     double db5 = round(3.60);
//     double db6 = round(3.46);
//     printf("%d,%d,%d,%d,%d,%d\n",(int)db1,(int)db2,(int)db3,(int)db4,(int)db5,(int)db6);
//     return 0;
// }

//选择结构
/* if */
// int main(){
//     int n = 5,m = 0;
//     if(n){
//         n = 9;
//         printf("%d\n",n);
//         return 0;
//     }else{
//         n = 22;
//         printf("%d\n",n);
//         return 0;
//     }
// }

/* switch */
// int main(){
//     int a = 1,b = 2;
//     switch(a+b){
//         case 2:
//         printf("%d\n",a);
//         break;
//         case 3:
//         printf("%d\n",b);
//         break;
//         case 4:
//         printf("%d\n",a+b);
//         break;
//         default:
//         printf("sad story\n");
//     }
//     return 0;
// }

/* 循环结构 */
//while
// int main(){
//     int n = 1,sum = 0;
//     while (n <= 100){
//         sum = sum + n;
//         n++;
//     }
//     printf("sum = %d\n",sum);
//     return 0;
// }

//数组
// int main(){
//     int a[10] = {5,3,2,6,8,4};
//     for(int i = 0;i<10;i++){
//         printf("a[%d] = %d\n",i,a[i]);
//     }
//     return 0;
// }

//顺推
// int main(){
//     int a[10];
//     scanf("%d",&a[0]);
//     for(int i = 1;i < 10;i++){
//         a[i] = a[i - 1] * 2;
//     }
//     for(int i = 0;i < 10;i++){
//         printf("a[%d] = %d\n",i,a[i]);
//     }
//     return 0;
// }

//冒泡排序
//exchange two num
// int main(){
//     int a = 1,b = 2;
//     int temp = a;
//     a = b;
//     b = temp;
//     printf("a = %d,b = %d\n",a , b);
//     return 0;
// }

// int main(){
//     int a[10] = {3,4,2,5,6,7};
//     for(int i = 1 ;i < 5;i++){//进行n-1趟
//         //第i趟时从a[0]到a[n-i-1]都与它们的下一个数比较
//         for(int j = 0; j<5-i;j++){//如果左边的数比较大,则交换a[j]和a[j+1]
//             if(a[j]>a[j+1]){
//                 int temp = a[j];
//                 a[j] = a[j+1];
//                 a[j+1] = temp;
//             }      
//         }
//     }
//     for(int i = 0;i<6;i++){
//         printf("%d",a[i]);
//     }
//     return 0;
// }

//二维数组
// int main(){
//     int a[5][6] = {{3,1,2},{8,4},{},{1,2,3,4,5}};
//     for(int i = 0; i< 5;i++){
//         for(int j = 0;j<6;j++){
//             printf("%d",a[i][j]);
//         }
//         printf("\n");
//     }
//     return 0;
// }

//将两个二维数组相加,并将结果存放到另一个二维数组中去
// int main(){
//     int a[3][3],b[3][3];
//     for(int i = 0;i<3;i++){
//         for(int j = 0 ;j<3;j++){
//             scanf("%d",&a[i][j]);
//         }
//     }
//     for(int i = 0;i<3;i++){
//         for(int j=0;j<3;j++){
//             scanf("%d",&b[i][j]);
//         }
//     }
//     int c[3][3];
//     for(int i = 0;i<3;i++){
//         for(int j = 0;j<3;j++){
//             c[i][j] = a[i][j]+b[i][j];
//         }
//     }
//     for(int i = 0;i<3;i++){
//         for(int j = 0;j<3;j++){
//             printf("%d",c[i][j]);
//         }
//         printf("\n");
//     }
// return 0;
// }

//memset函数
// #include<string.h>
// int main(){
//     int a[5] = {1,2,3,4,5};
//     memset(a,0,sizeof(a));
//     for(int i = 0;i<5;i++){
//         printf("%d",a[i]);
//     }
//     printf("\n");
//     memset(a,-1,sizeof(a));
//     for(int i = 0;i<5;i++){
//         printf("%d",a[i]);
//     }
//     printf("\n");
//     return 0;
// }

//string.h头文件
/* strlen */
// #include<string.h>
// int main(){
//     char str[10];
//     gets(str);
//     int len = strlen(str);
//     printf("%d\n",len);
//     return 0;
// }

/* strcmp 返回两个字符串大小的比较结果,比较原则时按字典序*/
// #include<string.h>
// int main(){
//     char str1[50],str2[50];
//     gets(str1);
//     gets(str2);
//     int cmp = strcmp(str1,str2);
//     if(cmp<0)
//     printf("str1<str2\n");
//     else if(cmp > 0 )
//     printf("str1>str2\n");
//     else printf("str1==str2\n");
//     return 0;
// }

// int x;
// void change(){
//     x = x+1;
// }

// int main(){
//     x = 10;
//     change();
//     printf("%d\n",x);
//     return 0;
// }

//以数组作为函数参数
// void change(int a[],int b[][5]){
//     a[0] = 1;
//     a[1] = 3;
//     a[2] = 5;
//     b[0][0] = 1;
// }

// int main(){
//     int a[3] = {0};
//     int b[5][5] = {0};
//     change(a,b);
//     for(int i = 0;i<3;i++){
//         printf("%d\n",a[i]);
//     }
//     return 0;
// }

//递归调用
// int F(int n){
//     if(n == 0) 
//     return 1;
//     else 
//     return F(n - 1) * n;
// }
// int main(){
//     int n;
//     scanf("%d",&n);
//     printf("%d\n",F(n));
//     return 0;
// }

// int main(){
//     int a ;
//     int* p = &a;
//     *p = 233;
//     printf("%d, %d\n", *p,a);
//     return 0;
// }

// int main(){
//     int a = 1;
//     // int p = &a;
//     // a = 233;
//     printf("%d\n", a);
//     return 0;
// }

// int main(){
//     int a[10] = {1};
//     int* p = a;
//     printf("%d\n",*p);
//     return 0;
// }

// int main(){
//     int a[10];
//     for(int i = 0;i<10;i++){
//         scanf("%d",a+i);
//     }
//     for(int i = 0;i<10;i++){
//         printf("%d",*(a + i));
//     }
//     return 0;
// }

// int main(){
//     int a[10] = {1, 2,3,4,5,6,7,8,9,10};
//     for(int* p=a;p<a+10;p++){
//         printf("%d",*p);
//     }
//     return 0;
// }

/* 有疑问*/
// int main(){
//     int a[10] = {1,4,9,16,25,36,49};
//     int *p = a;
//     int *q = &a[5];
//     printf("*q = %d\n", *q);
//     printf("*p = %d\n", *p);
//     printf("*q - *p = %d\n", *q-*p);
//     return 0;
// }

// void change(int* p){
//     *p = 233;
// }

// int main(){
//     int a = 1;
//     int* p = &a;
//     change(p);
//     printf("%d\n", a);
//     return 0;
// }

/* use point to exchange two num */
// void swap(int* a,int* b){
//     int temp = *a;
//     *a = *b;
//     *b = temp;
// }
// int main(){
//     int a = 1,b = 2;
//     int *p1 = &a,*p2 = &b;
//     swap(p1,p2);
//     printf("a = %d,b = %d\n",*p1,*p2);
//     return 0;
// }

// void change(int &x){
//     x = 1;
// }
// int main(){
//     int x = 10;
//     change(x);
//     printf("%d\n",x);
//     return 0;
// }

/*指针的引用*/
// void swap(int* &p1, int* &p2){
//     int* temp = p1;
//     p1 = p2;
//     p2 = temp;
// }
// int main(){
//     int a = 1,b = 2;
//     int *p1 = &a,*p2 = &b;
//     swap(p1,p2);
//     printf("a = %d,b = %d\n",*p1,*p2);
//     return 0;
// }

/* 结构体 */
struct Point{
    int x,y;
    Point(){}//用以不经出世后定义pt[10]
    Point(int _x,int _y):x(_x),y(_y) {}
}pt[10];
int main(){
    int num = 0;
    for(int i = 1;i<= 3;i++){
        for(int j = 1;j<= 3;j++){
            pt[num++] = Point(i, j);//直接使用构造函数
        }
    }
    for(int i = 0;i<num; i++){
        printf("%d,%d\n",pt[i].x,pt[i].y);
    }
    return 0;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.10.29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何在mac下简单的使用c++
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档