将一个整数中的每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为:87653142时,t中的数为:7531。
#include <stdio.h>
void extractOddDigits(int num)
{
// 将整数转换为字符串
char numStr[20]; // 假设整数的位数不超过20位
sprintf(numStr, "%d", num);
// 初始化一个字符数组用于存储奇数位上的数字
char t[20];
int tIndex = 0;
// 逐位检查每个字符是否为奇数
for (int i = 0; numStr[i] != '\0'; i++)
{
int digit = numStr[i] - '0'; // 将字符转换为数字
if (digit % 2 != 0)
{
// 如果是奇数,添加到新数字中
t[tIndex] = numStr[i];
tIndex++;
}
}
// 在新数字的末尾添加字符串结束符
t[tIndex] = '\0';
// 打印提取的奇数位数字
printf("提取的奇数位数字:%s\n", t);
}
int main()
{
int s;
scanf("%d", &s);
// 调用函数提取奇数位数字
extractOddDigits(s);
return 0;
}