C语言算法问答集:解决常见问题(常见问题.算法.语言.解决.问答集...)

wufei123 发布于 2024-10-13 阅读(88)

问题 1:求最大公约数,代码:int gcd(int a, int b) {...}。问题 2:求数组总和,代码:int sum(int arr, int size) {...}。问题 3:求阶乘,代码:int factorial(int n) {...}。问题 4:反转字符串,代码:void reverse(char str) {...}。

C语言算法问答集:解决常见问题

C 语言算法问答集:解决常见问题

问题 1:如何求两个数的最大公约数?

代码:

C
int gcd(int a, int b) {
  if (b == 0)
    return a;
  return gcd(b, a % b);
}

实战案例:

计算 12 和 18 的最大公约数:

C
int result = gcd(12, 18);
printf("最大公约数:%d\n", result); // 输出:6

问题 2:如何求一组数的总和?

代码:

C
int sum(int *arr, int size) {
  int sum = 0;
  for (int i = 0; i < size; i++) {
    sum += arr[i];
  }
  return sum;
}

实战案例:

计算数组 [1, 2, 3, 4, 5] 的总和:

C
int arr[] = {1, 2, 3, 4, 5};
int total = sum(arr, 5);
printf("总和:%d\n", total); // 输出:15

问题 3:如何求一个数的阶乘?

代码:

C
int factorial(int n) {
  if (n == 0)
    return 1;
  return n * factorial(n - 1);
}

实战案例:

计算 5 的阶乘:

C
int result = factorial(5);
printf("阶乘:%d\n", result); // 输出:120

问题 4:如何反转一个字符串?

代码:

C
void reverse(char *str) {
  int len = strlen(str);
  for (int i = 0; i < len / 2; i++) {
    char temp = str[i];
    str[i] = str[len - i - 1];
    str[len - i - 1] = temp;
  }
}

实战案例:

反转字符串 "Hello":

C
char str[] = "Hello";
reverse(str);
printf("反转后的字符串:%s\n", str); // 输出:olleH

以上就是C语言算法问答集:解决常见问题的详细内容,更多请关注知识资源分享宝库其它相关文章!

标签:  常见问题 算法 语言 

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。