#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; }
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!
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;
}
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.
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.
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;
}
For loop is used to iterate a set of statements based on a condition.
for(Initialization; Condition; Increment/decrement){
// code
}
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
}
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);
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.
data-type array-name[size];
data-type array-name[size][size];
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
Library functions are the in-built functions which are declared in header files like printf(),scanf(),puts(),gets() etc.,
User defined functions are the ones which are written by the programmer based on the requirement.
return_type function_name(parameters);
function_name (parameters)
return_type function_name(parameters) {
//code
}