#include <stdio.h>

#include <math.h> /* for pow*/

#include <ctype.h> /* for toupper*/

#include <string.h> /* for strlen*/

#define NOT_FOUND - 1 /* constants */
#define SUB_1 10
#define SUB_2 7
int search(const char[][SUB_2],
  const char[], int);
int main(void) {
  char reply, /* user reply*/
  char_left; /* character left in the input stream*/
  int i;
  int counter; /* counters */
  int value; /* subscript of target found in list*/
  double answer = 0.0; /* value of resistor in kilo-ohms*/
  int no_error = 1; /* denotes no error */

  /* initializing the array*/
  char COLOR_CODES[SUB_1][SUB_2] = {
    "black",
    "brown",
    "red",
    "orange",
    "yellow",
    "green",
    "blue",
    "violet",
    "gray",
    "white"
  };
  char target[SUB_2]; /* target string array*/
  do {
    printf("Enter the colors of the resistor's three bands, beginning with\n");
    printf("the band nearest the end. Type the colors in lowercase letters only, ");
    printf("NO CAPS.\n\n");
    for (counter = 1;counter<=3; counter++) {
      printf("Band %d => ", counter);
      scanf("%s", target);
      value = search(COLOR_CODES, target, SUB_1);
      printf("\nvalue => %d  ", value);
      /* searches for string*/
      if (value != NOT_FOUND) {
        switch (counter) {
        case 1:
          answer = value * 10;
          break;
        case 2:
          answer += value;
          break;
        case 3:
        if (value > 3)
          answer += pow(10,value);
        else
          for (i = 0;i<counter; i++)
            answer /= 10;
        }
      } else
        no_error = 0; /* if string not found*/
    }
    if (no_error==1)
      printf("Resistance value: %.3f kilo-ohms\n\n", answer);
    else
      printf("Invalid Color: %s\n\n", target);
    printf("Do you want to decode another resistor?\n => ");
    scanf("%c%c", & char_left, & reply);
    printf("\n");
  
}while (reply=='y');
}

/* function takes as input a list of strings, its size, and a target string. Then, searches the list for the
target and returns as its value the subscript of the target in the list. It returns -1 if target is not found.
*/
int search(const char COLOR_CODES[][SUB_2],const char target[], int size) {
  int i, j; /* counters */
  int length, counter = 0;
  int found = 0; /* indicates when string is found*/
  int where = 0; /* location of target*/
  length = strlen(target);
  printf("\n %d",length);
  for (i = 0;i<size; i++) {
    for (j = 0; j < length; j++){
        if (COLOR_CODES[i][j] == target[j]){
          counter++;
          printf("\n %c,%c",COLOR_CODES[i][j], target[j]);
        }
    }
      
    if (counter == length)
      found = 1;
    else
      counter = 0;
  }
  --i;
  if (found)
    where = i;
  else
    where = -1;
  return where;
} 
by

C Language online compiler

Write, Run & Share C Language code online using OneCompiler's C online compiler for free. It's one of the robust, feature-rich online compilers for C language, running the latest C version which is C18. Getting started with the OneCompiler's C editor is really simple and pretty fast. The editor shows sample boilerplate code when you choose language as 'C' and start coding!

Read inputs from stdin

OneCompiler's C online editor supports stdin and users can give inputs to programs using the STDIN textbox under the I/O tab. Following is a sample C program which takes name as input and print your name with hello.

#include <stdio.h>
int main()
{
    char name[50];
    printf("Enter name:");
    scanf("%s", name);
    printf("Hello %s \n" , name );
    return 0;
    
}

About C

C language is one of the most popular general-purpose programming language developed by Dennis Ritchie at Bell laboratories for UNIX operating system. The initial release of C Language was in the year 1972. Most of the desktop operating systems are written in C Language.

Key features:

  • Structured Programming
  • Popular system programming language
  • UNIX, MySQL and Oracle are completely written in C.
  • Supports variety of platforms
  • Efficient and also handle low-level activities.
  • As fast as assembly language and hence used as system development language.

Syntax help

Loops

1. If-Else:

When ever you want to perform a set of operations based on a condition if-else is used.

if(conditional-expression) {
   // code
} else {
   // code
}

You can also use if-else for nested Ifs and if-else-if ladder when multiple conditions are to be performed on a single variable.

2. Switch:

Switch is an alternative to if-else-if ladder.

switch(conditional-expression) {    
case value1:    
 // code    
 break;  // optional  
case value2:    
 // code    
 break;  // optional  
...    
    
default:     
 // code to be executed when all the above cases are not matched;    
} 

3. For:

For loop is used to iterate a set of statements based on a condition.

for(Initialization; Condition; Increment/decrement){  
  // code  
} 

4. While:

While is also used to iterate a set of statements based on a condition. Usually while is preferred when number of iterations are not known in advance.

while(condition) {  
 // code 
}  

5. Do-While:

Do-while is also used to iterate a set of statements based on a condition. It is mostly used when you need to execute the statements atleast once.

do {
  // code 
} while (condition); 

Arrays

Array is a collection of similar data which is stored in continuous memory addresses. Array values can be fetched using index. Index starts from 0 to size-1.

Syntax

One dimentional Array:

data-type array-name[size];

Two dimensional array:

data-type array-name[size][size];

Functions

Function is a sub-routine which contains set of statements. Usually functions are written when multiple calls are required to same set of statements which increases re-usuability and modularity.

Two types of functions are present in C

  1. Library Functions:

Library functions are the in-built functions which are declared in header files like printf(),scanf(),puts(),gets() etc.,

  1. User defined functions:

User defined functions are the ones which are written by the programmer based on the requirement.

How to declare a Function

return_type function_name(parameters);

How to call a Function

function_name (parameters)

How to define a Function

return_type function_name(parameters) {  
  //code
}