Amcat Automata Fix Basic Programming
![]() |
In this post, you will find questions & answers related to Amcat automata Fix basic programming which is easy and very important for the Amcat test you can't afford to miss it if you want to score well.
#include <stdio.h>
int main()
{
float x = 1.1;
switch (x)
{
case 1: printf("Choice is 1");
break;
default: printf("Invalid choice");
break;
}
return 0;
}
#include <stdio.h>
int main()
{
int x = 1;
switch (x)
{
case 1: printf("Choice is 1");
break;
default: printf("Invalid choice");
break;
}
return 0;
}
Find the index of the equilibrium element in the given array. In an array equilibrium element is the one where the sum of all the elements to the left side is equal to the sum of all the elements on the right side.
Return Value:
1) Return -1 if no equilibrium element is found
2) In case there is more than one equilibrium element, return the element with the least index value.
You are supposed to complete the given code by reusing the existing function. You can click on Compile & run anytime to check the compilation/execution status of the program you can use printf to debug your code. The submitted code should be logically/syntactically correct and pass all the test cases.
Code approach For the question:
Correct the given implementation.
Do not modify the approach.
Test Case:
a[] = {1,2,3,4,3,3}. 4 is the equilibrium element since its left side sum (1+2+3) is equal to its right side sum (3+3)
#include <stdio.h>
// Return the sum of elements from index 0 to (idx - 1)
int left_side_sum(int a[], int n, int idx)
{
int sum = 0, i;
for(i = 0; i < idx; i++)
{
sum += a[i];
}
return sum;
}
// Return the sum of elements from index (idx + 1) to (n - 1)
int right_side_sum(int a[], int n, int idx)
{
int sum = 0, i;
for(i = idx + 1; i < n; i++)
{
sum += a[i];
}
return sum;
}
// returns -1 if no equilibrium index found
int findEquilibriumIndex(int a[], int n)
{
// Type your code here
}
int main() {
//code
int a[10], n, i;
// get the elements count
scanf("%d", &n);
// get the array elements
for(i=0; i<n; i++)
{
scanf("%d", &a[i]);
}
int equiIndex = findEquilibriumIndex(a, n);
if(equiIndex != -1) {
printf("%d", a[equiIndex]);
}
return 0;
}
// Return the sum of elements from index 0 to (idx - 1)
int left_side_sum(int a[], int n, int idx)
{
int sum = 0, i;
for(i = 0; i < idx; i++)
{
sum += a[i];
}
return sum;
}
// Return the sum of elements from index (idx + 1) to (n - 1)
int right_side_sum(int a[], int n, int idx)
{
int sum = 0, i;
for(i = idx + 1; i < n; i++)
{
sum += a[i];
}
return sum;
}
// returns -1 if no equilibrium index found
int findEquilibriumIndex(int a[], int n)
{
// Type your code here
int i;
for(i = 0; i < n; i++)
{
if(left_side_sum(a, n, i) == right_side_sum(a, n, i))
{
return i;
}
}
return -1;
}
int main() {
//code
int a[10], n, i;
// get the elements count
scanf("%d", &n);
// get the array elements
for(i=0; i<n; i++)
{
scanf("%d", &a[i]);
}
int equiIndex = findEquilibriumIndex(a, n);
if(equiIndex != -1) {
printf("%d", a[equiIndex]);
}
return 0;
}
3) Find the error in the below code.
void main () {
int i, j, n = 5;
for(i=1; i<n; i++)
{
for(j=i;j<n;j++);
{
printf("%d", i);
}
printf("\n");
}
}
Ans.
void main () {
int i, j, n = 5;
for(i=1; i<n; i++)
{
for(j=i;j<n;j++)
{
printf("%d", i);
}
printf("\n");
}
}
A semicolon in the C statement is used to tell the compiler where's the end of the statement. Second, for loop executes one time.
4) Correct the below code.
No comments:
For Query and doubts!