苏嵌//谭晓寅//2018.7.12

今日学习任务

内容回顾辅导及测试

今日任务完成情况

测试未在规定时间内完成

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

 

1、  main函数缺少函数声明产生警告

2、  系统时间改变编译时也产生了警告

今日未解决问题

今日开发收获

1、  巩固了一些基本知识

2、  能够根据问题写出代码并输出结果

自我评价

按开发规范完成了既定任务

其他

 

1、 打印输出10行的杨辉三角

  1 #include<stdio.h>

  2 int main()

  3 {

  4    int a[10][30]; //定义一个二维数组

  5    int i;

  6    int j;

  7    for (i = 0;i <= 9;i ++)

  8     {

  9        a[i][0] = 1; //第一列全为1

 10        a[i][i] = 1; //对角线全为1

 11     }

 12    for(i = 2;i <= 9;i ++)

 13     {

 14        for(j = 1;j <= (i-1);j ++)

 15        {

 16            a[i][j] = a[i-1][j-1] + a[i-1][j]; //此行此列的值等于上一行前一列的值加上上一行此列的值

 17        }

 18     }

 19    for(i = 0;i <= 9;i ++)

 20     {

 21         for(j = 0;j <= i; j ++)

 22        {

 23            printf("%6d",a[i][j]);//输出一行

 24        }

 25        printf("\n");//输出一行结束后换行

 26     }

 27    return 0;

 28 }

[root@localhosttest1]# ./test1

     1

     1    1

     1    2     1

     1    3     3     1

     1    4     6     4    1

     1    5    10    10    5     1

     1    6    15    20   15     6     1

     1    7    21    35   35    21     7    1

     1    8    28    56   70    56    28    8     1

     1    9    36    84  126   126    84   36     9     1

 

2、 用函数实现递归调用求n

  1#include<stdio.h>

  2

  3int main()

  4 {

 5     int fac(int n);//声明递归函数

 6     int n;

 7     int m;

 8     printf("inputn:");

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

 10     m= fac(n);//将递归返回值给m

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

 12    return 0;

 13 }

  1#include<stdio.h>

  2

  3int fac(int n)//定义递归函数

  4 {

 5     int f = 0;

 6     if(n < 0)

 7        printf("dataerror\n");//n<0时输出错误

 8     else if(n == 0 || n == 1)

 9         f = 1;//n=0n=1时返回值为1

 10    else

 11        f = fac(n - 1) * n;//n>1时递归调用函数本身实现n的阶乘

 12    return f;//返回阶乘所得的值

 13 }

[root@localhost test3]# ./test3

input n:10

10! = 3628800

 

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

[root@localhost test4]# vim main/src/main.c

  1#include<stdio.h>

  2

  3int main()

  4 {

 5     int count(char a[50],charb[10]);//声明计数函数

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

 7     char b[10];

 8     int c;

 9     printf("input astring:");

 10    gets(a);//键盘输入副字符串

 11    printf("input a word:");

 12    gets(b);//键盘输入子串

 13     c= count(a,b);//将计数值给c

 14     printf("%d\n",c);//输出结果

 15    return 0;

 16 }

 

[root@localhost test4]# vimcount/src/count.c

  1#include<string.h>

  2

  3int count(char a[50],char b[10])

  4 {

 5     int i;

 6     int num = 0;//赋初值

 7     i = strlen(b); //取子串长度

 8     while(strlen(a) > 0)//父串长度大于0

 9     {

 10        if(strncmp(a,b,i) == 0)//判断父串中是否出现子串

 11        {

 12            num ++;//父串中子串每出现一次加1

 13            a += i;//数组名加上子串长度

 14        }

 15        else

 16            a ++;//若父串中不出现子串,数组名加1,指向下一个字符

 17     }

 18    return num;//返回计数值

 19 }

[root@localhost test4]# ./test4

input astring:abcdefghigjlkkjgjajkjakjiejkjaaljlkeijgjlkjf

input a word:j

12

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值