【嵌入式学习】C语言基础-Day8-函数

1.输入一个字符串,计算空格的个数

int main(int argc, const char *argv[]){
        char arr[20];
        gets(arr);

        size_t count=0;

        for (int i = 0; arr[i]!='\0' ; i++){
                if(arr[i]==' '){
                        count++;
                }
        }

        printf("空格的个数是:%ld\n",count);

        return 0;
}

在这里插入图片描述

2.输入一个字符串,计算单词的个数
eg: “good good study”(空格的格式可能是多个)
单词的个数是3,

#include <stdio.h>

int main(int argc, const char *argv[]){
       char arr[20];
       gets(arr);

       size_t count=0;

       int i =0;

       while(arr[i]!='\0'){

               if(arr[i]!=' ' && (arr[i+1]==' '||arr[i+1]=='\0')){
                       count++;
               }

               i++;
       }

       printf("单词的个数是:%ld\n",count);

       return 0;
}

在这里插入图片描述

3.矩阵相乘:前提条件A矩阵的列数需要和B矩阵的行数相同
在这里插入图片描述

#include <stdio.h>

int main(int argc, const char *argv[]){
        int line1=0,cow1=0;
        printf("line1 cow1:");
        scanf("%d %d",&line1,&cow1);
        int line2=0,cow2=0;
        printf("line2 cow2:");
        scanf("%d %d",&line2,&cow2);

        if(cow1!=line2){
                printf("error!\n");
                return 0;
        }

        int a[line1][cow1],b[line2][cow2],ans[20][20]={0};

        printf("a:\n");
        for (int i = 0; i < line1 ; i++){
                for (int j = 0; j < cow1; j++){
                        scanf("%d",&a[i][j]);
                }
        }

        printf("b:\n");
        for (int i = 0; i < line2 ; i++){
                for (int j = 0; j < cow2; j++){
                        scanf("%d",&b[i][j]);
                }
        }


        for (int i = 0; i < line1 ; i++){
                for (int j = 0; j < cow2; j++){
                        for (int k = 0; k <line1; k++){
                                ans[i][j]+=a[i][k]*b[k][j];
                        }

                        printf("%d  ",ans[i][j]);
                }
                puts(" ");
        }

        return 0;
}

在这里插入图片描述

4.定义有参无返函数实现杨慧三角
参数:二维数组,行,列


#include <stdio.h>

void YanhuiTri(int n){
        int arr[n][n];
        for (int i = 0; i < n; i++){
                for (int j = 0; j <= i; j++){
                        if(j==0||i==j){
                                arr[i][j]=1;
                        }else{
                                arr[i][j]=arr[i-1][j]+arr[i-1][j-1];
                        }

                        printf("%-3d",arr[i][j]);

                }
                puts(" ");
        }
}

int main(int argc, const char *argv[]){
        int a;
        scanf("%d",&a);

        YanhuiTri(a);
        return 0;
}

在这里插入图片描述

5.定义有参无返函数实现二维数组转置?
参数:二维数组,行,列

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void Rev(int line,int row,int a[line][row]);
int main(int argc, const char *argv[]){
        int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};
        int line=sizeof(a)/sizeof(a[0]);
        int row=sizeof(a[0])/sizeof(a[0][0]);
        Rev(line,row,a);
        return 0;
}

void Rev(int line,int row,int a[line][row]){
        int b[row][line];
        for(int i=0;i<line;i++){
                for(int j=0;j<row;j++){
                        b[j][i]=a[i][j];
                }
        }

        for(int i=0;i<row;i++){
                for(int j=0;j<line;j++){
                        printf("%-3d",b[i][j]);
                }
                puts("");
        }
}

在这里插入图片描述

6.输入一个字符串实现单词的逆置
eg:“good good study”
输出:“study good good”

7.输入n个字符串每个字符串20字节,并实现输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值