用c语言编写程序 输入一个n位数的整数,提取其中的奇数,并用这些奇数组成一个最大的数
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/19 11:34:10
用c语言编写程序 输入一个n位数的整数,提取其中的奇数,并用这些奇数组成一个最大的数
用c语言编写程序 输入一个n位数的整数,提取其中的奇数,并用这些奇数组成一个最大的数
用c语言编写程序 输入一个n位数的整数,提取其中的奇数,并用这些奇数组成一个最大的数
#include
#include
int main()
{
\x09int i,j ,m,n;
\x09char ch;
\x09char *str = NULL;
\x09
\x09printf("输入位数n:\n");
\x09scanf("%d\n",&n);
\x09str = (char *)malloc(sizeof(char) * (n + 1));
\x09if(str == NULL)
\x09\x09return 0;
\x09
\x09for(i = 0; i < n; i++)
\x09\x09*(str + i) = getchar();
\x09//提取奇数
\x09for(i = 0,m = 0; i < n; i++)
\x09\x09if(*(str + i) % 2 == 1)
\x09\x09\x09*(str + (m++)) = *(str + i);
\x09
\x09*(str + m) = '\0';
\x09//转换位置,得到最大值
\x09for(i = 0; i < m; i++)
\x09\x09for(j = i + 1; j < m; j++)
\x09\x09\x09if(*(str + i) < *(str + j))
\x09\x09\x09{
\x09\x09\x09\x09ch = *(str + i);
\x09\x09\x09\x09*(str + i) = *(str + j);
\x09\x09\x09\x09*(str + j) = ch;
\x09\x09\x09}
\x09printf("%s\n",str);
\x09free(str);
\x09return 1;
}