ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c++初步探索

2022-03-20 13:33:28  阅读:196  来源: 互联网

标签:main return 探索 int c++ 初步 printf putchar include



输出 This is a C program.
//#include <stdio.h>                         //这是编译预处理指令
//int main()                                //定义主函数
//{                                        //函数开始的标志      
//    printf("This is a C program.\n");   //输出所指定的一行信息
//    return 0;                           //函数执行完毕时返回函数值0
//}                                       //函数结束的标志
//

//#define _CRT_SECURE_NO_WARNINGS
//#include<stdio.h>
//int main()
//{
//    int a = 0;
//    int b = 0;
//    int sum = 0;
//    printf("请输入a=");
//    scanf("%d", &a);   //&取上面定义的a
//    printf("请输入b=");
//    scanf("%d", &b);
//    sum = a + b;
//    printf("sum is %d\n", sum);
//    return 0;
//
//}


//-----------------------------------------------------------------------------------------------------------------------------------------


dfine定义函数      ?是判断 :是选择
//#define max(x,y) ((x)>(y)?(x):(y))
//#define  _CRT_SECURE_NO_WARNINGS
//#include<stdio.h>
//
主函数
//int main()
//{
//    int a,b,c;
//    scanf("%d,%d", &a,&b); //scanf 中的输入格式应该严格按照字符顺序来,如有","则一定要加上","  (%d,%d)
//    c = max(a,b);
//    printf("max=%d\n", c);
//    printf("%d\n", a);
//    printf("%d", b);
//    return 0;
//}

//#define  _CRT_SECURE_NO_WARNINGS
//#include<stdio.h>
//int main()
//{
//    int max(int x, int y);
//    int a, b, c;
//    printf("请输入a,b的值:");
//    scanf("%d,%d", &a,&b);
//    c = max(a, b);
//    printf("max is %d\n", c);
//    return 0;
//}
//int max(int x, int y)    //用c++的方式自行定义max函数
//{
//    int z=(0);
//        if (x > y)z = x;
//        else z = y;
//    return (z);          //将z的值作为max的函数值,返回到调用max函数的位置
//}

//#include<stdio.h>
//int main()
//{
//    int sign = 1;
//    double deno = 2.0, sum = 1.0, term;
//    while (deno <= 100)
//        {
//            sign = -sign;
//            term = sign / deno;
//            sum = sum + term;
//            deno = deno + 1;
//        }
//        printf("%f\n", sum);
//            return 0;
//}

//-----------------------------------------------------------------------------------------------------------------------------------------------------------------

//字符输入输出函数    putchar--输出一个字符   getchar---输入一个字符
//#include <stdio.h>
//  int main()
//{

    putchar 输出
    //char a = 'B', b = 'O', c = 'Y';    //因为B的ASCII为66,O为79,C为89      故可以用  int a=66,b=79,c=89;  代替。
    //putchar(a);
    //putchar(b);
    //putchar(c);
    //putchar('\n');
    //
    //putchar('\'');
    //putchar('\015');   //015八进制等于13十进制 ,13是“回车”在ASCII代码
    //return 0;


    getchar 输入
    //char e, f, g;
    //e = getchar();
    //f = getchar();
    //g = getchar();           //输入完后需要按Enter键
    //putchar(e);
    //putchar(f);
    //putchar(g);
    //putchar('\n');
    //return 0;

//    //getchar函数得到的字符可以赋给一个字符变量或整型变量,也可以不赋给任何变量。
//    putchar(getchar());
//    putchar(getchar());
//    putchar(getchar());
//    putchar('\n');
//    return 0;        //输入完在按Enter键
//
//}

//#include<stdio.h>
//int main()
//{
//    char c1, c2;
//    printf("这是大写的字母:");
//    c1 = getchar();
//    c2 = c1 + 32;        //在ASCII中大小写十进制表示:小写字符比大写的多32
//    printf("这是小写的字母:");
//    putchar(c2);
//    putchar('\n');
//    return 0;
//}


//-----------------------------------------------------------------------------------------------------------------------------------------


//求解二元一次方程组
//#define _CRT_SECURE_NO_WARNINGS
//#include<stdio.h>
//#include<math.h>
//int main()
//{
//    double a,b,c,disc,x1,x2,p,q;
//    scanf("%f,%f,%f,",&a,&b,&c);
//    disc =b*b-(4*a*c);
//    if (disc < 0)
//        printf("此方程无解\n");
//    else
//    {
//        p = -b / (2.0 * a);
//        q = sqrt(disc) / (2.0 * a);
//        x1 = p + q; 
//        x2 = p - q;
//    }
//        printf("方程的两个根:\nx1=%7.2f\nx2=%7.2f\n", x1, x2);
//    return 0;
//}

//-----------------------------------------------------------------------------------------------------------------------------------------

//求解三角形面积
//#define _CRT_SECURE_NO_WARNINGS
//#include<stdio.h>
//#include<math.h>
//int main()
//{
//    float a,b,c,d,S;
//    printf("请输入三角形的三个边长a,b,c\n");
//    scanf("%f,%f,%f", &a,&b,&c);
//    if ((a >= b + c )|| (b >= a + c) || (c >= a + b))
//    {
//        printf("三角形不成立,故无解");
//    }
//    else
//    {
//        d = (a + b + c) / 2;
//        S = sqrt(d * (d - a) * (d - b) * (d - c));
//        printf("三角形的面积为%1f\n",S);
//    }
//    return 0;
//}


//-----------------------------------------------------------------------------------------------------------------------------------------


// 求解两个数的最大公约数
//#define _CRT_SECURE_NO_WARNINGS
//#include<stdio.h>
//#include<math.h>
//int main()
//{
//    int a, b, c,t;
//    printf("请输入两个正整数");
//    scanf("%d,%d", &a, &b);
//    if (a < b)
//    {
//        t = b;
//        b = a;
//        a = t;
//    }
//    do
//    {
//        c = a % b;
//        a = b;
//        b = c;
//    } while (c);
//    printf("最大公约数:%d\n", a);
//    return 0;
//}


//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

//switch 的使用 (break)。

//#define _CRT_SECURE_NO_WARNINGS
//#include<stdio.h>
//int main()
//{
//    char grade;
//    printf("请输入你的成绩等级(例:A,B,C,D ):");
//    scanf("%c", &grade);      //char 字符变量
//    printf("Your score:");
//    switch (grade)                                        //switch接连在printf下面 , 没有换行符。
//    {
//    case'A': printf("85-100\n"); break;
//    case'B': printf("70-84\n"); break;
//    case'C': printf("60-69\n"); break;
//    case'D': printf("<60\n"); break;
//    default:printf("enter data error!\n");
//    
//    }
//    return 0;
//}

//#define _CRT_SECURE_NO_WARNINGS
//#include<stdio.h>
//int main()
//{
//    void action1(int, int), action2(int, int);                         //viod定义函数时不需要返回值,int定义函数时需要返回值(即需要return 0;)
//    char ch,sh;
//    int a, b; 
//    printf("请输入两个值:");
//    scanf("%d,%d", &a,&b);
//    printf("请选择你需要运算的类型:(A,a为加法/B,b为乘法)\n");
//    getchar();                                                                  //如果有换行符需要用gerchar吃掉,例如在scanf后面自动有一个换行符,在后面接getchar用来吃掉这个换行符。
//    ch = getchar();
//    printf("%c,%d,%d\n", ch,a,b);
//
//    switch(ch)
//        {
//        case'a':
//        case'A':action1(a, b); break;
//        case'b':
//        case'B':action2(a, b); break;
//        default:putchar('\a');
//        }
//    return 0;
//}
//    void action1(int x, int y)                 //int 与viod 函数定义对比 65行        
//    {
//        printf("x+y=%d\n", x + y);
//
//    }
//    void action2(int x, int y)
//    {
//        printf("x*y=%d\n", x * y);
//
//    }

//------------------------------------------------------------------------------------------------------------------------------

//for 语句的循环

 /*    for(i=1;i<=100;i++)                     i=1;
                             =====     while(i<=100)
                             =====        {
    sum=sum +i                              sum=sum+i;
                                          i++;
                                            }
 */                                     
// i=1;for(;i<=100;i++);  等效于 for(i=1;i<=100;i++)             
/*for里面有三个解析表达式.
* 若有循环变量i,则:省略发生
 表达式1可以被省略,但是没有对i循环变量赋值。
 表达式2可以被省略,但是此时表达式将无限循环下去。
 表达式3可以被省略,但是for循环可能无法停止。

 在for循环前后可以对i循环变量进行定义
  */

 //for(sum=0,i=1;i<=100;i++)sum=sum+i;
 //表达式1和表达式2都可以是逗号表达式,即包含一个以上的简单表达式
//表达式2可以是关系表达式,逻辑表达式,数值表达式,字符表达式。其值为非零。


//#include<stdio.h>
//int main()
//{   
//    
//    int i,c;
//    for (i=0; (c = getchar())!='\n';i+=c );                //不断输入字符,将他们的ASCII码相加,直到输入一个“换行符”为止。
//    return 0;
//}


//#include<stdio.h>
//int main()
//{
//    int c;
//    for (; (c = getchar())!='\n';)
//    printf("%c", c);
//    return 0;
//}

//------------------------------------------------------------------------------------------------------------------------------

//continue 的使用

//#include<stdio.h>
//int main()
//{
//    int n;
//    for (n = 100; n <= 200; n++)
//    {
//        if (n % 5 == 0)
//        {
//            printf("\n");
//        }
//        if (n % 5== 0)
//            continue;
//                //执行continue时会跳过printf  到右花括号}的前面  返回for循环
//        printf("%d\t", n);
//    }
//    printf("\n");
//    return 0;
//}
//


//--------------------------------------------------------------------------------------------------------------------------

//例子
// 
//求Π,格雷戈里公式

//#include<stdio.h>
//#include<math.h>
//int main()
//{
//    int sign = 1;
//    double pi = 0.0, n = 1.0, term = 1.0;                                 // fab()函数为取绝对值函数
//    while (fabs(term) >= 1e-6)                                           //检查当前项term的绝对值是否大于或等于10负六次方
//    {
//        pi = pi + term;
//        n = n + 2;
//        sign = -sign;
//        term = sign / n;
//    }
//    pi = pi * 4;
//    printf("pi=%10.8f\n", pi);
//    return 0;
//
//}    


//------------------------------------------------------------------------------------------------------------------------------------------


//算法题 斐波那契数列

//方案一
#include<stdio.h>
//int main()
//{
//    int f1 = 1, f2 = 1,f3;
//    int i;
//    printf("%12d%12d", f1, f2);
//    for (i = 3; i <= 40; i++)
//    {
//        f3 = f1 + f2;
//        printf("%12d", f3);
//        f1 = f2;
//        f2 = f3;
//        if (i % 5 == 0)printf("\n");
//    }
//    return 0;
//} 


//方案二
//#include<stdio.h>
//int main()
//{
//    int f1 = 1, f2 = 1;
//    int i;
//    for (i = 1; i <= 20; i++)
//    {
//        printf("%12d%12d", f1, f2);
//        if (i % 2 == 0)printf("\n");
//        f1 = f1 + f2;
//        f2 = f2 + f1;
//
//    }
//    return 0;
//}

//-------------------------------------------------------------------------------------------------------------------------------------------------


//数组是一组有序数据的集合,数组中的每一个元素都属于同一种数据类型。     
//方括号[]中的数字来表示下标,如s[15]表示s中第15个。

//定义一维数组

//#include<stdio.h>
//int main()
//{                                            // int a[n];   是不合法的,数组的大小不作动态定义。
//    int i, a[10];                          //定义数组是由a[0]开始算第一个。
//    for (i = 0; i <= 9; i++)              //for循环中的表达式间隔用:分号!
//        a[i] = i;
//    for (i = 9; i >= 0;i--)
//        printf("%d\t", a[i]);
//    printf("\n");
//    return 0;
//}


//用数组求解斐波那契数列

//#include<stdio.h>
//int main()
//{
//    int i;
//    int f[20] = { 1,1 };                      //对最前面两个元素f[0]和f[1]赋初值1
//    for (i = 2; i < 20; i++)
//        f[i] = f[i - 2] + f[i - 1];           //先后求出f[2]-f[19]的值
//    for (i = 0; i < 20; i++)
//    {
//        if (i % 5 == 0)printf("\n");
//        printf("%12d", f[i]);
//
//    }
//    printf("\n");
//    return 0;
//}


//起泡法排序实现数组大小排列

//#define _CRT_SECURE_NO_WARNINGS
//#include<stdio.h>
//int main()
//{
//    int a[10];
//    int i, j, t;
//    printf("input 10 numbers:\n");
//    for (i = 0; i < 10; i++)
//        scanf_s("%d", &a[i]);                  //地址符&
//    printf("\n");                             //定义完成数组
//    for(j=0;j<9;j++)
//        for(i=0;i<9-j;i++)
//            if (a[i] > a[i + 1])
//            {
//                t = a[i];
//                a[i] = a[i + 1];
//                a[i+1] = t;
//            }
//    printf("the sorted numbers;\n");
//    for (i = 0; i < 10; i++)
//        printf("%-2d", a[i]);                    //printf输出时 %d 默认为左最齐 ,%-d改成右对齐
//    printf("\n");
//    return 0;
//}

//#include<stdio.h>
//#include<math.h>
//int main()
//{
//    float C, F;
//    printf("请输入华氏温度:");
//    scanf_s("%f", &F);
//    C = (F - 32) * 5 / 9;
//    printf("对应的摄氏温度为:%f", C);
//    return 0;
//}


//pow函数的使用,是用来求x的y次方的

//#include <stdio.h>
//#include <math.h>
//void main()
//{
//    int x, y;
//    scanf_s("%d,%d",&x, &y);
//    int data = pow(x, y);
//    printf("%d", data);
//}


斐波那契数列求解
//#include <stdio.h>
//#include <math.h>
//
//int optimizeFibonacci(int first, int second, int n)
//{
//    if (n > 0) {
//        if (n == 1) {    // 递归终止条件
//            return first;       // 简单情景
//        }
//        else if (n == 2) {            // 递归终止条件
//            return second;      // 简单情景
//        }
//        else if (n == 3) {         // 递归终止条件
//            return first + second;      // 简单情景
//        }
//        return optimizeFibonacci(second, first + second, n - 1);  // 相同重复逻辑,缩小问题规模
//    }
//
//
//    return -1;             //用返回-1来表示失败
//}
//int main()
//{
//    int optimizeFibonacci( int first, int second, int n);            //调用函数optimizeFibonacci( int first, int second, int n)
//    int x,y,z,D;
//    printf("请输入斐波那契数列前两个数字以及第X所需要的数:\n");
//    scanf_s("%d,%d,%d", &x, &y, &z);
//    D= optimizeFibonacci(x,y,z);
//    printf("第X个数为:\n%d", D);
//    return 0;
//}


//求出3X4矩阵中最大元素的值,以其所在的行号和列号
//#include<stdio.h>
//int main()
//{
//    int i, j, row = 0, colum = 0, max;
//    int a[3][4] = { {1,2,3,4 }, {9,8,7,6},{ -10,10,-5,2 } };
//    max = a[0][0];                                                                  //先认为a[0][0]最大
//    for(i=0;i<=2;i++)
//        for(j=0;j<=3;j++)
//            if (a[i][j] > max)                                                     //如果某元素大于max,就取代max的原值
//            {
//                max = a[i][j];
//                row = i;                                                                        //行号        
//                colum = j;                                                                      //列号
//            }
//    printf("max=%d\nrwo=%d\ncolum=%d\n", max, row, colum);
//    return 0;
//}

//-----------------------------------------------------------------------------------------------------------------------------------------


//字符数组

//#include<stdio.h>
//int main()
//{                                                                                       //注意定义字符串的时候使用的是花括号{}
//    char c[15]={'I', ' ', 'L', 'o', 'v', 'e', ' ', 'Y', 'o', 'u', '.'};              //只有11给字符,但是剩下的自动填充成空字符'\0'(代表结束符)
//    int i,j;
//    for (i = 0; i < 15; i++)                                 //for循环后面若没有花括号{}就执行一个语句
//        printf("%c", c[i]);                                //用格式符"%c"输入或输出一个字符
//        printf("\n");
//    printf("%s\n", c);                                      //用格式符"%s"输入或输出一次字符串
//    printf("\n");      
//    return 0;
//}

//#include<stdio.h>
//int main()
//{
//    char str1[6],str2[6],str3[6];                                           //需要的数组大小比输入的字符大小 多一  因为最后一个需要放"\0"终止符
//    scanf_s("%s%s%s",str1,6,str2,6,str3,6);                                 //此处不需要加地址符 &    其中str,6中的6是用来指定缓冲区大小的参数,表示最多读取n-1个字符(4)
//    printf("%s%s%s\n", str1,str2,str3);
//    printf("%s\n",str1);
//    printf("%s\n",str2);
//    printf("%s\n",str3);                                                  //注意数组的大小,过小会导致内存越界
//    return 0;
//}


//#include<stdio.h>
//int main()
//{
//    int a[10][10],i,j;
//    
//    for (i = 0; i < 10; i++)
//    {
//        a[i][i] = 1;
//        a[i][0] = 1;
//    }
//    for (i = 2; i < 10; i++)
//        for (j = 1; j <= i - 1; j++)
//            a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
//    for (i = 0; i < 10; i++)
//    {
//        for (j = 0; j <= i; j++)
//            printf("%6d", a[i][j]);
//        printf("\n");
//    }
//    printf("\n\t程序结束");
//    return 0;
//    
//}


#include<stdio.h>
void main()
{
    int a[10][10];
    int i, j, k, n, m;

    for (i = 0; i < 10; i++)                   /*给备用的数组做初始化*/
    {
        for (j = 0; j < 10; j++)
            a[i][j] = 0;
    }

    k = 0;                                  /*限定输入的数必须满足要求*/
    while (k == 0)
    {
        printf("Please input a number as the value of n:(必须是10以内的奇数)\n");
        scanf("%d", &n);
        if (n % 2 != 0 && n > 0 && n < 10)
            k = 1;
        else
            k = 0;
    }

    i = 0;
    j = n / 2;
    a[i][j] = 1;
    for (m = 2; m <= n * n; m++)                  /*因为1已经放好了,所以我们从2开始放*/
    {

        if ((i == 0) && (j != n - 1))            /*算法中的第3步*/
        {
            i = n - 1;
            j = j + 1;
            if (a[i][j] == 0)                  /*算法中的第7步*/
                a[i][j] = m;
            else
            {
                i = 1;
                j = j - 1;
                a[i][j] = m;
            }
        }

        else if ((i != 0) && (j == n - 1))      /*算法中的第4步*/
        {
            i = i - 1;
            j = 0;
            if (a[i][j] == 0)                /*算法中的第7步*/
                a[i][j] = m;
            else
            {
                i = i + 1;
                j = n - 1;
                a[i][j] = m;
            }
        }

        else if ((i == 0) && (j == n - 1))       /*算法中的第5步*/
        {
            i = n - 1;
            j = 0;
            if (a[i][j] == 0)                 /*算法中的第7步*/
                a[i][j] = m;
            else
            {
                i = 1;
                j = n - 1;
                a[i][j] = m;
            }
        }

        else                                 /*算法中的第6步*/
        {
            i = i - 1;
            j = j + 1;
            if (a[i][j] == 0)                 /*算法中的第7步*/
                a[i][j] = m;
            else
            {
                i = i + 2;
                j = j - 1;
                a[i][j] = m;
            }
        }
    }

    printf("%d阶魔方阵:\n", n);
    for (i = 0; i < n; i++)                        /*输出数组*/
    {
        for (j = 0; j < n; j++)
        {
            printf("%4d", a[i][j]);
        }
        printf("\n");
    }

标签:main,return,探索,int,c++,初步,printf,putchar,include
来源: https://blog.csdn.net/weixin_59898812/article/details/123611483

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有