苏嵌//张奇哲//2018.7.12

学习日志                                       姓名:张奇哲        日期:7.12

 

 

 

 

今日学习任务

 

上午完成之前所学内容的整理,做好知识总结

下午完成老师布置的c语言测试。

今日任务完成情况

 

(详细说明本日任务是否按计划完成,开发的代码量)

基本完成知识的整理。下午的基础c语言编写出现困难,需要课后进行完善。

写了四个小程序,都能无错误运行

今日开发中出现的问题汇总

 

C语言由于积累与知识掌握不足,编写出现困难,但经过翻阅书本,查阅资料等方式基本能够完成编写。

 

今日未解决问题

 

C语言编写依然有困难,需要后期学习

今日开发收获

整理了前段时间所学的各项知识。进一步巩固了所学。在下午进行的C语言编写测试中,发现自己编写存在较大困难,要求我在后期学习中,认真学习C语言方面知识。

 

自我评价

 

(是否按开发规范完成既定任务,需要改进的地方,与他人合作效果等)

 

 

基本完成了今天的学习任务,但是过程中也发现了一些问题,希望在日后的学习过程中能够努力加以克服。

其他

 

编写的四个小程序,附下。

 

1.用C语言打印出杨辉三角

#include<stdio.h>                                            //头文件

int main()                                                   //定义主函数

{

    int i;                                                   //定义i作为行数

    int j;                                                    //定义j作为列数

    int a[11][11];                                            //定义一个二维数组

    for(i = 0;i < 11;i ++)                                    //for循环从第一行到第11行

    {

        a[i][i] = 1;                                          //每行最后一个数为1

         a[i][0] = 1;                                          //每行第一个数为1

    }

    for(i = 2;i < 11;i ++)                                    //从第三行循环到11行

    {

        for(j = 1;j <= i - 1;j ++)                            //for循环从第二列循环至行数减一

         {

            a[i][j] = a[i - 1][j - 1] + a[i - 1][j];          //i行j列的数等于i-1行j-1列的数加上i-1行j列的数

        }

    }      

    for(i = 0;i < 11; i ++)                                  //for循环从第一行到第11行

    {                        

         for(j = 0;j <= i; j ++)                             //for循环从第一列到第i列                

             printf("%5d",a[i][j]);                          //输出第i行第j列的数

             printf("\n");                                   //i发生变化进行换行

    }

    printf("\n");                                            //换行

    return 0;                                               //返回值为0

}

2.用C语言实现简单的计算器(加、减、乘、除)

#include <stdio.h>                                 //头文件

main()                                             //主函数

{

   float a;                                     //定义需要计算的第一个数

   float b;                                     //定义需要计算的第二个数

   float c;                                        //定义计算结果

   char  x;                                      //定义符号位

   scanf("%f%c%f",&a,&x,&b);                      //用户输入计算公式   

   switch( x )                                    //switch结构选择语句

    {                                                    

       case'+': c = a + b; break;                  //x为+时c的值为a+b

         case'-':c = a - b; break;                 //x为-时c的值为a-b

         case'*':c = a * b; break;                 //x为*时c的值为a*b

         case'/':c = (b == 0)?(0):( a / b);break;  //x为/时判断b的值是否为0,为零时c为0,不为零则c为a/b

         default:c = 0;break;

    }      

printf("%f%c%f= %f\n",a,x,b,c);               // 输出结果

 

 

 

3.利用递归方法实现一个函数,该函数能够实现n的阶乘,即 n! = n*(n-1)*…*3*2*1;

#include<stdio.h>                       //头文件

main()                                   //定义主函数

{

    intn;                              //定义需要计算的数

    int fact(int);                      //定义计算阶乘函数

    printf("输入需要计算阶乘的数:");    //提示从键盘输入数

    scanf("%d",&n);                     //从键盘输入数

    printf("%d!=%d\n",n,fac(n));        //输出结果

}

int fac(intn)                          //定义计算阶乘函数

{         

    int p;                              //从键盘输入的数

    if(n <= 1)                          //if语句进行相关数运算

        p = 1;

    else

        p = n * fac(n - 1);

    return p;                          //返回值为p

}

 

 

4.输入一个字符串,计算字符串中子串出现的次数

#include<stdio.h>                    //两个头文件库

#include<string.h>

int main()

{

    char a[100];                     //定义字符数组

    printf("请输入字符串\n");      

    scanf("%s",a);                   //由键盘输入字符串

    char * c = a;                    //定义指针c指向数组a

    char b[10];                      //定义字符数组

    printf("请输入子串\n");        

    scanf("%s",b);                   //由键盘输入子串

    char * d = b;                    //定义指针d指向数组b

    int n;                          //定义整形变量

    int num = 0;                     //定义计数用num

    n = strlen(d);                   //n的值为字符串d的长度

    while(strlen(c) > 0)             //while循环语句

    {                               

        if(strncmp(c,d,n) == 0)      //运用strncmp函数比较a b两个字符串

        {

            num++;                  //计数+1

            c += n;                 //继续比较后面位

        }

        else

        {

            c++;                   //进行比较

        }

    }

    printf("%d\n",num);           //输出出现次数

    return 0;

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值