C语言错题锦集(持续更新)

简介: C语言错题锦集(持续更新)

🔊🔊🔊

🇨🇳大家好,我是_奇奇,暂时为一名C语言博主。河牧院大一在读。

🔔欢迎大家和我一起交流学习

❤️编程的前途是光明的,道路是曲折的。笑到最后才是赢家🍺

🌳戳我跳到本人个人主页,点击查看更多知识点!

目录


1.牛客网[编程题]替换空格

题目描述

请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

题目分析

由于1个空格占1个字符,但是替换为“%20”话是3个字符。所以需要给字符串增加位置。由于“we are happy”中有2个空格,所以理所当然要增加4个位置,即字符串长度增加4.


算法步骤

1.先确定这个字符串有几个空格。然后根据空格确定新字符串的长度。

2.依次将空格后的字符串往后移动。

3.然后依次补上“%20”这三个字符。

代码

class Solution {
public:
  void replaceSpace(char *str,int length) {
  int spacecnt = 0;
  char* cur = str;
  while (*cur)
  {
    if (*cur == ' ')
    {
      spacecnt++;
    }
    cur++;
  }
  int newlen = length + spacecnt * 2;
  int end1 = length - 1;
  int end2 = newlen - 1;
  while (end1 != end2)
  {
    if (str[end1] != ' ')
    {
      str[end2--] = str[end1--];
    }
    else
    {
      str[end2--] = '0';
      str[end2--] = '2';
      str[end2--] = '%';
      end1--;
    }
  }
  }
};

2.矩阵相乘

题目描述

矩阵乘法规定:矩阵乘法中第一个矩阵的列要等于第二个矩阵的行。

将一个m∗n的的A矩阵,和一个n∗p的B矩阵相乘,将得到一个m∗p的矩阵C

以23和32的矩阵为例。

题目分析

将第一个矩阵的每一行依次乘以第二个矩阵的每一列然后相加起来就是第三个矩阵了。

代码实现

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
  int arr1[2][3] = { 0 };
  int arr2[3][2] = { 0 };
  int arrsum[2][2] = { 0 };
  int i = 0;
  int j = 0;
  int k = 0;
  int m = 0;
  int n = 0;
  for (i = 0; i < 2; i++)
  {
    for (j = 0; j < 3; j++)
    {
      scanf("%d", &arr1[i][j]);
    }
  }
  for (i = 0; i < 3; i++)
  {
    for (j = 0; j < 2; j++)
    {
      scanf("%d", &arr2[i][j]);
    }
  }
  int a = 0;
  for (a = 0; a < 2; a++)
  {
    int b = 0, c = 0, d = 0;
    for (b = 0; b < 2; b++)
    {
      for (j = 0; j < 3; j++)
      {
        arrsum[a][b] = arrsum[a][b] + arr1[a][j] * arr2[j][b];
      }
      printf("%d ", arrsum[a][b]);
    }
    printf("\n");
  }
  return 0;
}


相关文章
|
2月前
|
C语言
【C语言】错题本(3)
【C语言】错题本(3)
17 0
|
2月前
|
C语言
【C语言】错题本(2)
【C语言】错题本(2)
20 0
|
2月前
|
C语言
【C语言】错题本(1)
【C语言】错题本(1)
28 0
|
10月前
|
存储 编译器 C语言
C语言错题之 10
C语言错题之 10
94 0
|
2月前
|
存储 C语言
【C语言】错题本(4)
【C语言】错题本(4)
24 0
|
2月前
|
C语言
C语言:初阶测试错题(查漏补缺)
C语言:初阶测试错题(查漏补缺)
26 0
|
11月前
|
存储 C语言
C语言错题之 8
C语言错题之 8
55 0
|
8月前
|
C语言
C语言初阶 牛客网刷题笔记(将持续更新..)
C语言初阶 牛客网刷题笔记(将持续更新..)
C语言初阶 牛客网刷题笔记(将持续更新..)
|
2月前
|
存储 IDE 编译器
c语言选择题常见知识点汇总 ------持续更新
当使用free释放掉一个指针内容后,指针变量的值不会被置为NULL,free不会更改指针指向、32位系统下任何类型指针的长度都是4个字节、指针的数据类型声明的是指针实际指向内容的数据类型、野指针是指向未分配或者已经释放的内存地址
|
8月前
|
C语言
C语言分支语句和循环语句经典题及易错题
C语言分支语句和循环语句经典题及易错题
96 0