有在线编程自测怎么都能过,但保存并调试怎么也过不了的吗?

输入描述:


	

输入一个字符串。

输出描述:

	

输出字符串中最长的数字字符串和它的长度。如果有相同长度的串,则要一块儿输出,但是长度还是一串的长度





#include<stdio.h>
#include <stdbool.h>
#include <string.h>
unsigned int Continumax(char** pOutputstr,  char* intputstr) {
    char out[1024]="";
    bool record = false;
    bool copy = true;
    int j = 0;
    int len = 0;
    int k = 0;
    for (int i = 0; i < strlen(intputstr); i++){
        if (record) {
            j = 0;
        }
        
        if ((intputstr[i] >= '0') && (intputstr[i] <= '9') && (i != strlen(intputstr) - 1)) {
            out[j] = intputstr[i];
            record = false;
            copy = true;
            j++;
            
        } else {
            record = true;
            if ((intputstr[i] >= '0') && (intputstr[i] <= '9')) {
                out[j] = intputstr[i];
            } 
  
            if (copy) {
                if (len < strlen(out)) {
                    len = strlen(out);
                    k = 0;
                    strcpy(*pOutputstr, out);
                } else if ( (len == strlen(out)) && len != 0) {
                    strcat(*pOutputstr, out);
                }
                copy = false;
            }
        }
    }
    printf("%s,",*pOutputstr);
    return len;
}


int main()
{
    char input[1024];
    char output[1024];
    scanf("%s",&input);

    char out[1024]="";
    bool record = false;
    bool copy = true;
    int j = 0;
    int len = 0;
    int k = 0;
    for (int i = 0; i < strlen(input); i++){
        if (record) {
            j = 0;
        }
        
        if ((input[i] >= '0') && (input[i] <= '9') && (i != strlen(input) - 1)) {
            out[j] = input[i];
            record = false;
            copy = true;
            j++;
            
        } else {
            record = true;
            if ((input[i] >= '0') && input[i] <= '9')) {
                out[j] = input[i];
            } 
  
            if (copy) {
                if (len < strlen(out)) {
                    len = strlen(out);
                    strcpy(output, "");
                    strcpy(output, out);
                } else if ( (len == strlen(out)) && len != 0) {
                    strcat(output, out);
                }
                copy = false;
            }
        }
    }
    printf("%s,",output);
    printf("%d",len);
    
    
}
全部评论
每个编程题有10-50组测试数据,你的代码在本机or自测可以通过仅仅是通过了样例数据,可能存在边界条件考虑不周导致更多的测试数据没有通过,所以会返回答案错误。
点赞 回复 分享
发布于 2020-01-06 09:23
多输出个input就不是空 不输出input就是空
点赞 回复 分享
发布于 2020-01-06 23:12

相关推荐

10-24 11:10
山西大学 Java
若梦难了:哥们,面试挂是很正常的。我大中厂终面挂,加起来快10次了,继续努力吧。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-24 20:55
阿里国际 Java工程师 2.7k*16.0
程序员猪皮:没有超过3k的,不太好选。春招再看看
点赞 评论 收藏
分享
点赞 1 评论
分享
牛客网
牛客企业服务