Hier ist die Beschreibung des Problems https://a2oj.com/p?ID=193, es funktioniert sehr gut auf Visual Studio, aber aus irgendeinem Grund produziert es Runtime - Fehler auf der Website der Richter Compiler, es ist schwer für mich zu erkennen Da ihr Compiler nicht mitteilt, was der Testfall war, erzeugte der Fehler.Runtime Error - C Programmierung, kein Fehler auf IDE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define ASCII_SIZE 255
void main(){
int testCases;
char caseInput[100];
int count[ASCII_SIZE] = {0};
int strLength;
int max = -1;
char result = NULL;
typedef struct occurrence{
int numOfOcc;
char occLetter; }Occurence;
scanf("%d",&testCases);
Occurence *ptr;
ptr = (Occurence*)malloc(testCases * sizeof(Occurence));
if (ptr){
for (int caseValue = 0; caseValue < testCases; caseValue++)
{
scanf("%s",caseInput);
strLength = strlen(caseInput);
for (int i=0; i<strLength; i++)
count[caseInput[i]]++;
for (int i = 0; i < strLength; i++) {
if (max <= count[caseInput[i]]) {
if (result > caseInput[i] && i > 0){
max = count[caseInput[i]];
result = caseInput[i];
}
else if (i == 0){
max = count[caseInput[i]];
result = caseInput[i];
}
}
}
ptr[caseValue].numOfOcc = max;
ptr[caseValue].occLetter = result;
max = -1;
char result = NULL;
memset(count,0,sizeof(count));
}
for (int i = 0; i < testCases; i++)
{
printf("%d %c\n",ptr[i].numOfOcc,ptr[i].occLetter);
}
}
}
Ich habe das schon mal mit ihrem Compiler/Testbed gesehen: Ihr 'void main()' ist eine passende falsche Deklaration und muss 'int main' sein. Als Ergebnis gibt Ihr 'main' einen undefinierten Wert zurück, der von ihrem Testbett als Fehler interpretiert wird und somit einen Laufzeitfehler meldet. Lassen Sie es 0 zurückgeben. –
Ja danke ich tat das, aber jetzt sagt es falsche Antwort aus irgendeinem Grund, obwohl es sehr gut auf der IDE funktioniert und es ist schlecht, dass ihr Compiler nicht sagt, welcher Testfall den Code fehlgeschlagen – andrewnagyeb