求新数和倍数(输入正整数n和0~9范围内的一个数m,判断m是否存在于n中(用函数实现),若不存在则输出“m不存在于n中”(m和n以具体输入的值代替))

求新数和倍数。

【问题描述】

输入正整数n和0~9范围内的一个数m,判断m是否存在于n中(用函数实现),若不存在则输出“m不存在于n中”(m和n以具体输入的值代替);若存在则删除n中的数字m,构成一个新数k(高位为原高位,低位为原低位),并用原数n除以新数k,得到倍数(保留2位小数),然后依次输出新数k及其倍数,中间以一个逗号分隔。输出结束不换行。

【样例输入1】

12345 2

【样例输出1】

1345,9.18

【样例说明1】

n为12345,m为2;删除2后的新数k为1345,n是k的9.18倍。

【样例输入2】

12045 0

【样例输出2】

1245,9.67

【样例说明2】

n为12045,m为0;删除0后的新数k为1245,n是k的9.67倍。

【样例输入3】

12345 6

【样例输出3】

6不存在于12345中

【样例说明3】

n为12345,m为6;输出“6不存在于12345中”。

#include<stdio.h>
#include<math.h>
int xinshu(int a, int b) {
    int c[100], i=0;
    while(a!=0){
        c[i] = a % 10;
        i++;
        a = a / 10;
    }
    int n = i; int j; int flag = 0;
    for (i = 0; i < n; i++) {
        if (c[i] == b) {
            for (j = i; j < n; j++)
                c[j] = c[j + 1];
            n--;
        }
        else flag++;
    }
    int sum = 0;
    for (i = 0; i < n; i++) {
        sum += c[i] * pow(10,(double) (i));
    }
    if(flag!=n)return sum;
    else { return 0; }
}
int main() {
    int a, b;
    scanf_s("%d%d", &a, &b);
    if (xinshu(a, b) != 0)printf("%d,%.2lf", xinshu(a, b), (double)(a) / xinshu(a, b));
    else printf("%d不存在于%d中", b, a);

return 0;
}
上一篇:mysql的replace函数


下一篇:Mongodb数据库基础入门(一)