【Nowcoder-BC146.添加逗号 -OR63.删除公共字符】

Nowcoder-BC146.-OR63.

  • Nowcoder-BC146.添加逗号
  • Nowcoder-OR63.删除公共字符

Nowcoder-BC146.添加逗号

题目:对于一个较大的整数 N(1<=N<=2,000,000,000)
比如 980364535,我们常常需要一位一位数这个数字是几位数,但是如果在这个数字每三位加一个逗号,它会变得更加易于朗读。
因此,这个数字加上逗号成如下的模样:980,364,535请写一个程序完成这件事情。

我们的思路是,将这个输入进来的数,从低数位开始一个一个放到一个数组中,这个数组是个char类型的,因为要存放’ , ‘,所以每一位数在存放进去之前还要把它转成字符,而数组的长度是14,因为N的取值范围是(1<=N<=2,000,000,000),还要考虑逗号和’ \0 ';因为是每三位就要放一个逗号,所以用一个count来判断是否满足条件,这个判断条件就是count % 3,当这个值为0,证明就够三位了,就要添加逗号;

		int main()
		{
		    int n = 0, i = 0, count = 0;
		    scanf("%d", &n);
		    char arr[14];
		    //当n还不为0的时候循环继续
		    while (n)
		    {
		        //判断是否已经够三位数,并且不能为0
		        if (count != 0 && count % 3 == 0)
		        {
		            arr[i++] = ',';
		        }
		        //将每一位数转成字符再放进数组
		        arr[i++] = n % 10 + '0';
		        count++;
		        n /= 10;
		    }
		    //从后往前打印数组
		    for (--i; i >= 0; i--)
		    {
		        printf("%c", arr[i]);
		    }
		    return 0;
		}

Nowcoder-OR63.删除公共字符

题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。
例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”

我们的思路是,先输入两个字符串,这里用gets输入,然后在遍历第一个字符串str1的同时,判断当前str1的字符是否在第二个字符串中出现过,所以每一个str1的字符判断都要遍历一遍str2,如果在str2中找到了这个字符,就不打印这个字符,如果没找到,就打印;

		int func(char* str, char ch)
		{
		    while (*str)
		    {
		        if (*str == ch)
		        {
		            return 0;
		        }
		        str++;
		    }
		    return 1;
		}
		
		int main()
		{
		    char str1[100];
		    char str2[100];
		    gets(str1);
		    gets(str2);
		
		    int i = 0;
		    while (str1[i])
		    {
		        //在str2中找当前str[i]的字符
		        //找到返回0,不进入if语句,不打印
		        //找不到返回1,进入if语句打印
		        if (func(str2, str1[i]))
		        {
		            printf("%c", str1[i]);
		        }
		        //无论找没找到,i遍历下一个字符
		        i++;
		    }
		    return 0;
		}

你可能感兴趣的:(c语言)