读入1个长度不超15的字符串,输入1个5以内的正整数n,(无需判断输入合法性)。从字符串第1个字符(下标0)开始,输出所有距离n个字符位置的相应字符及其ASCII码。

题目要求:
读入1个长度不超15的字符串,输入1个5以内的正整数n,(无需判断输入合法性)。从字符串第1个字符(下标0)开始,输出所有距离n个字符位置的相应字符及其ASCII码。(针对\0以前的字符)。对所输出的字符,将其中Ascii为奇数的字符的末位组合成1个数字输出,同时输出该数字的位数。
提醒: 字符串部分函数的使用,可程序开头包含头文件 "stdio.h" 和 "string.h" ,最后一行的统计是针对跳跃到的位置的奇数字符而求得。

输入格式:
第1行输入一个字符串,第2行输入整数。

输出格式:
每个字符和其Ascii码逗号分隔。占一行。
最后一行输出Ascii为奇数的字符的末位组合成的数字及其位数后,无需换行。

输入样例:
在这里给出一组输入。例如:

abcd6633d415
3
输出样例:
在这里给出相应的输出。例如:

a,97
d,100
3,51
4,52
71,2
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
C (gcc)
1

oj提交可能有要求,需要包含两个头文件和用sanf("%s",buf);输入试试。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632

代码如下:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
    char buf[16] = { 0 };
    int n, i;
    int sum = 0;
    int ws = 0;
    gets(buf);
    scanf("%d", &n);
    for (i = 0; buf[i] != '\0'; i += n)
    {
        printf("%c,%d\n", buf[i], buf[i]);
        if (buf[i] % 2 == 1) //奇数
        {
            sum = sum * 10 + buf[i] % 10;
            ws += 1;
        }
            
    }
    printf("%d,%d", sum,ws);
        
    return 0;
}