CSES - E4590 2016 2 - Results
Submission details
Task:ModAdd
Sender:idan
Submission time:2016-09-24 15:49:17 +0300
Language:C++
Status:COMPILE ERROR

Compiler report

input/code.cpp: In function 'char* strrev(char*)':
input/code.cpp:17:43: error: 'strlen' was not declared in this scope
  for (front = str, back = str + strlen(str) - 1; front < back; front++, back--){
                                           ^
input/code.cpp: In function 'int main()':
input/code.cpp:35:26: error: 'strlen' was not declared in this scope
  int aIndex = strlen(numA) - 1;
                          ^
input/code.cpp:54:38: error: 'strspn' was not declared in this scope
  int numOfZeroes = strspn(result, "0");
                                      ^
input/code.cpp:58:16: error: 'system' was not declared in this scope
  system("Pause");
                ^
input/code.cpp:32:19: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%s", numA);
                   ^
input/code.cpp:33:19: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result...

Code

/*********************************
* Class: MAGSHIMIM C2 *
* Week 1 *
**********************************/
#include <stdio.h>
#include <math.h>
char *strrev(char *str){
char c, *front, *back;
if (!str || !*str)
return str;
for (front = str, back = str + strlen(str) - 1; front < back; front++, back--){
c = *front; *front = *back; *back = c;
}
return str;
}
char numA[1000101] = { 0 };
char numB[1000101] = { 0 };
char result[1000101] = { 0 };
int main(void)
{
int i = 0, currentAlsd = 0, currentBlsd = 0, currentDigit = 0;
scanf("%s", numA);
scanf("%s", numB);
int aIndex = strlen(numA) - 1;
int bIndex = strlen(numB) - 1;
//printf("Lengths %d %d ", aIndex, bIndex);
int maxLength = strlen(numA) > strlen(numB) ? strlen(numA) : strlen(numB);
//printf("MaxLength : %d", maxLength);
//system("pause");
for (i = 0; i < maxLength; i++)
{
currentAlsd = aIndex < 0 ? 0 : numA[aIndex--] - '0';
currentBlsd = bIndex < 0 ? 0 : numB[bIndex--] - '0';
currentDigit = (currentAlsd + currentBlsd) % 10;
result[i] = currentDigit + '0';
//puts(result);
//printf("iteration %d : A lsd: %d B lsd: %d", i, currentAlsd, currentBlsd);
}
int numOfZeroes = strspn(result, "0");
//printf("num of zeroes :%d\n", numOfZeroes);
puts(numOfZeroes == strlen(result) ? "0" : strrev(result));
system("Pause");
}