C语言学习

简介: C语言学习

求解a的值

  void test()
  { 
  int a = 2;
  a += 1; 
  } 
  int main()
  { 
  test();
  printf("%d\n", a);
  return 0; 
  }

答:由于局部变量优先,当调用完test函数之后,a作为局部变量的值就已经被销毁了,所以只剩下全局变量了。

求解a和b最小公倍数

牛客OJ

解法1:最小公倍数既可以整除a,也可以整除b,我们可以先求出a与b中最大的一个数为max,然后设置一个循环,如果满足最小公倍数的定义那么我们是可以跳出循环,否则的话max++,具体实现代码如下:

//求解a b的最小公倍数
int main()
{
  int a = 0, b = 0;
  scanf("%d %d", &a, &b);
  int max = a > b ? a : b;
  while (1)//给出一个死循环,保证找到最小公倍数跳出循环
  {
    if (max % a == 0 && max % b == 0)
    {
      break;
    }
    max++;
  }
  printf("最小公倍数为:%d",max);
  return 0;
}

解法2:最小公倍数除以a是等于b,除以b是等于a,那么我们可以设置最小公倍数为a*i,如果最小公倍数除以b的模为零,那么就可以说明这个数就为最小公倍数,相比较于解法一而言,解法二的时间复杂度要低很多,具体实现代码如下:

int main()
{
  int a = 0, b = 0;
  scanf("%d %d", &a, &b);
  int i = 1;
  while ((a * i) % b != 0)
  {
    i++;
  }
  printf("最小公倍数为:%d", a * i);
}

注:如果牛客中不可以通过全部测试用例,一般情况下应该是超出整形所表示的范围了,需要使用long long型

倒置字符串

牛客OJ

解法:可以先将整个字符串进行逆置,再分别对整个字符串中的每一个单词进行逆置即可,具体C语言实现代码如下:

//将字符串进行倒置
//逆置字符串
void reverse(char* left, char* right)
{
  //比较地址的大小,来判断是否逆置到位
  while (left < right)
  {
    char tmp = *left;
    *left = *right;
    *right = tmp;
    left++;
    right--;
  }
  return;
}
int main()
{
  char arr[100];
  //由于scanf不可以读取到空格,所以要使用gets函数
  gets(arr);
  int len = strlen(arr);
  //先逆置整个的字符串
  reverse(arr, arr + len - 1);
  //在分别逆置每一个单词
  char* start = arr;
  char* cur = arr;
  while (*cur!='\0')
  {
    while (*cur != ' '&&*cur!='\0')
    {
      cur++;
    }
    reverse(start, cur - 1);
    start = cur + 1;
    //如果遇到空格就可以跳过
    if (*cur == ' ')
    {
      cur++;
    }
  }
  printf("%s\n", arr);
  return 0;
}
目录
相关文章
|
5天前
|
存储 编译器 C语言
初识C语言——详细入门(系统性学习day4)
初识C语言——详细入门(系统性学习day4)
|
5天前
|
编译器 程序员 开发工具
c语言从入门到实战——在系统学习C语言之前所需要了解的知识
C语言是一种通用的、过程式的计算机编程语言,支持结构化编程、词汇变量作用域和递归等功能,其设计提供了低级别的存取权限,并且要求程序员管理所有的内存细节。C语言的基本构成包括数据类型(如整型、浮点型、字符型等)、运算符(如算术运算符、关系运算符、逻辑运算符等)、控制结构(如顺序结构、选择结构、循环结构等)以及函数等。此外,C语言还提供了指针的概念,这是其他许多编程语言所不具备的。指针是一个变量,其值为另一个变量的地址,通过指针可以间接访问和操作内存中的数据。C语言也支持数组、结构体、联合体等复合数据类型,以及文件操作、动态内存分配等高级功能。
54 0
|
5天前
|
存储 C语言
通俗易懂的学习C语言中输入一组数并找出其最大值
通俗易懂的学习C语言中输入一组数并找出其最大值
|
5月前
|
程序员 编译器 人机交互
深入学习《c语言函数》
深入学习《c语言函数》
45 0
|
5月前
|
编译器 C语言
你的函数使用对了吗?-------C语言函数学习(3)详解
你的函数使用对了吗?-------C语言函数学习(3)详解
55 1
|
5月前
|
存储 C语言
打通你学习C语言的任督二脉-函数栈帧的创建和销毁(上)
打通你学习C语言的任督二脉-函数栈帧的创建和销毁(上)
47 0
|
5月前
|
算法 C语言
你会使用函数的递归和迭代吗?----------C语言函数学习(4)详解
你会使用函数的递归和迭代吗?----------C语言函数学习(4)详解
80 1
|
5天前
|
机器学习/深度学习 人工智能 Java
学习Python语言好还是C语言好
学习Python语言好还是C语言好
22 0
|
5天前
|
C语言
###51单片机学习-----如何通过C语言运用延时函数设计LED流水灯
###51单片机学习-----如何通过C语言运用延时函数设计LED流水灯
85 0
|
5天前
|
C语言
二次学习C语言补缺(day1)
二次学习C语言补缺(day1)
18 2