0
点赞
收藏
分享

微信扫一扫

IntelliJ IDEA安装

爪哇驿站 2023-12-09 阅读 42

1,写一个函数,实现数字的加密和解密。

下面是一个简单的C语言函数,可以实现数字的加密和解密。这个函数采用简单的加密算法,将输入的数字乘以一个固定的密钥,然后加上一个固定的偏移量。解密过程就是将加密后的数字减去偏移量,然后再除以密钥。

#include <stdio.h>  

// 加密函数
int encrypt(int num, int key, int offset) {
return (num * key) + offset;
}

// 解密函数
int decrypt(int encrypted_num, int key, int offset) {
return (encrypted_num - offset) / key;
}

int main() {
int num = 12345;
int key = 7;
int offset = 100;

// 加密数字
int encrypted_num = encrypt(num, key, offset);
printf("加密后的数字为:%d\n", encrypted_num);

// 解密数字
int decrypted_num = decrypt(encrypted_num, key, offset);
printf("解密后的数字为:%d\n", decrypted_num);

return 0;
}

在上面的代码中,encrypt()函数将输入的数字乘以密钥并加上偏移量,然后返回加密后的数字。decrypt()函数将加密后的数字减去偏移量,然后除以密钥,返回解密后的数字。在main()函数中,我们定义了一个输入的数字、一个密钥和一个偏移量,然后使用这些参数调用encrypt()decrypt()函数来加密和解密数字。

2,写一个函数,将一个字符串转换为整数。

在C语言中,可以使用库函数 atoi() 来将字符串转换为整数,前前面好像有一篇写过这个功能,但用的是库函数,这里不用。不过下面的代码不用库函数实现这个功能:

#include <stdio.h>  
#include <stdlib.h> // for NULL

int string_to_int(char* str) {
int result = 0;
int sign = 1;

// Handle negative numbers
if (*str == '-') {
sign = -1;
str++;
}

// Convert each character to an integer
while (*str != '\0') {
char c = *str - '0';
if (c < 0 || c > 9) {
// If the character is not a digit, return 0
return 0;
}
result = result * 10 + c;
str++;
}

// Apply the sign
return sign * result;
}

int main() {
char str[] = "-123";
int num = string_to_int(str);
printf("%d\n", num); // Outputs: -123
return 0;
}

        这个函数首先检查字符串的第一个字符是否为负号,然后遍历字符串的每一个字符,将其转换为对应的数字,并累加到结果中。最后,根据符号将结果返回。如果字符串中包含非数字的字符,函数将返回0。

3,写一个函数,将一个整数转换为字符串。

下面的功能,也是用不同的方式实现。

#include <stdio.h>  
#include <stdlib.h>

char* int_to_str(int num) {
int i = 0;
int sign = num < 0 ? -1 : 1;
int abs_num = sign * num;
char* str = (char*)malloc(32 * sizeof(char));
if (str == NULL) {
printf("Memory allocation failed.\n");
exit(1);
}
while (abs_num > 0) {
int rem = abs_num % 10;
str[i++] = '0' + rem;
abs_num /= 10;
}
if (sign < 0) {
str[i++] = '-';
}
str[i] = '\0';
int j = i - 1;
while (j >= 0 && str[j] == '0') {
j--;
}
if (j < 0) {
str[0] = '\0';
} else {
for (int k = 0; k < j; k++) {
str[k] = str[j--];
}
str[j] = '\0';
}
return str;
}

        该函数首先判断输入的整数是否为负数,如果是负数则取其绝对值,否则直接取其绝对值。然后,使用循环将整数转换为字符串,每次取余数并将其转换为字符存储到字符串中,最后将字符串返回。在返回之前,函数会将其符号处理后返回。此外,函数还会对字符串进行优化,删除多余的零。

4,写一个函数,判断一个数字是否为偶数或奇数。

可以写一个函数来判断一个数字是偶数还是奇数。以下是一个简单的示例:

#include <stdio.h>  

// 判断数字是偶数还是奇数
void checkNumber(int num) {
if (num % 2 == 0) {
printf("%d 是偶数\n", num);
} else {
printf("%d 是奇数\n", num);
}
}

int main() {
int num;
printf("请输入一个数字: ");
scanf("%d",
checkNumber(num);
return 0;
}

        在这个程序中,我们首先定义了一个函数 checkNumber,它接收一个整数作为参数,并使用模数运算符 % 来检查这个数是否可被2整除。如果数字可以被2整除,那么它就是偶数,否则它就是奇数。然后,我们从用户那里获取一个数字,并使用 checkNumber 函数来检查这个数字是偶数还是奇数。

5,写一个函数,求一个立方数的和。

#include <stdio.h>  

int sumOfCubes(int n) {
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += i * i * i;
}
return sum;
}

int main() {
int n = 10;
int result = sumOfCubes(n);
printf("The sum of cubes from 1 to %d is %d\n", n, result);
return 0;
}

        这个函数使用一个循环来计算从1到给定数字n的每个整数的立方和。最后,它返回这个和。在主函数中,我们调用这个函数并打印结果。

举报

相关推荐

0 条评论