硅云网站建设视频推广下载
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){//判断是否已经够三位数,并且不能为0if (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;}