|
|
发表于 2023-8-14 21:29:30
|
显示全部楼层
代码如下:
- #include <stdio.h>
- #include <string.h>
- int main() {
- int a[100], i, n, o, j;
- char str[100];
- o = 0;
- j = 0;
- gets(str);
- n = strlen(str);
- for (i = 0; i < n; i++) {
- a[ i] = str[ i];
- if (a[ i] >= '0' && a[ i] <= '9') {
- if (a[ i] % 2 == 0) {
- o++;
- } else {
- j++;
- }
- }
- }
- printf("数字串中奇数个数为:%d", j);
- printf("数字串中偶数个数为:%d", o);
- printf("\n");
- return 0;
- }
复制代码
这段代码的目的是计算由数字字符构成的字符串中奇数和偶数的个数。首先,定义了一个整型数组a和两个整型变量o和j,用于统计奇数和偶数的个数。然后,通过 gets() 函数获取用户输入的字符串,并使用 strlen() 函数获取字符串的长度。接下来,使用循环遍历字符串中的每个字符,将字符转换为整数并存储到数组a中。在遍历的过程中,判断字符是否为数字字符,如果是,则判断其是否为偶数或奇数,并分别增加o和j的计数。最后,输出奇数和偶数的个数。
需要注意的是,上述代码存在一些问题。首先, gets() 函数不安全,容易导致缓冲区溢出,建议使用 fgets() 函数替代。其次,没有对输入的字符串进行合法性检查,可能会导致非数字字符的处理错误。最后, main() 函数的返回值应为 int 类型,因此在代码的最后添加了 return 0; 语句。 |
|