Table of Contents
Practice programs on Loops
1. C program to print all natural numbers from 1 to n using while loop:
#include <stdio.h> int main() { int i, end; /* * Input a number from user */ printf("Print all natural numbers from 1 to : "); scanf("%d", &end); /* * Print natural numbers from 1 to end */ i=1; while(i<=end) { printf("%d\n", i); i++; } return 0; }
*******************************************************
2. C program to print natural numbers in reverse from n to 1 using while loop:
#include <stdio.h> int main() { int n; /* * Input a number from user */ printf("Enter value of n: "); scanf("%d", &n); while(n>=1) { printf("%d\n", n); n--; } return 0; }
*******************************************************
3. C program to print alphabets from a to z using while loop:
#include <stdio.h> int main() { char ch = 'a'; printf("Alphabets from a - z are: \n"); while(ch<='z') { printf("%c\n", ch); ch++; } return 0; }
******************************************************
4. C program to print all odd numbers from 1 to n using for loop:
#include <stdio.h> int main() { int i, n, sum=0; /* Input range to find sum of odd numbers */ printf("Enter upper limit: "); scanf("%d", &n); /* Find the sum of all odd number */ for(i=1; i<=n; i+=2) { sum += i; } printf("Sum of odd numbers = %d", sum); return 0; }
*********************************************************
5. C program to print multiplication table of a given number using for loop:
#include <stdio.h> int main() { int i, num; /* Input a number to print table */ printf("Enter number to print table: "); scanf("%d", &num); for(i=1; i<=10; i++) { printf("%d * %d = %d\n", num, i, (num*i)); } return 0; }
***************************************************************
6. C program to print multiplication table from 1 to 5 using Nested loop:
#include <stdio.h> int main() { /* Loop counter variable declaration */ int i, j; /* Outer loop */ for(i=1; i<=10; i++) { /* Inner loop */ for(j=1; j<=5; j++) { printf("%d\t", (i*j)); } /* Print a new line */ printf("\n"); } return 0; }
*************************************************************
7. Program to add numbers until the user enters zero using do..while loop:
#include <stdio.h> int main() { double number, sum = 0; // the body of the loop is executed at least once do { printf("Enter a number: "); scanf("%lf", &number); sum += number; } while(number != 0.0); printf("Sum = %.2lf",sum); return 0; }
*****************************************************
8. C program to find all factors of a number:
#include <stdio.h> int main() { int i, num; /* Input number from user */ printf("Enter any number to find its factor: "); scanf("%d", &num); printf("All factors of %d are: \n", num); /* Iterate from 1 to num */ for(i=1; i<=num; i++) { /* * If num is exactly divisible by i * Then i is a factor of num */ if(num % i == 0) { printf("%d, ",i); } } return 0; }
*********************************************************************
9. C program to find factorial of a number:
#include <stdio.h> int main() { int i, num; unsigned long long fact=1LL; /* Input number from user */ printf("Enter any number to calculate factorial: "); scanf("%d", &num); /* Run loop from 1 to num */ for(i=1; i<=num; i++) { fact = fact * i; } printf("Factorial of %d = %llu", num, fact); return 0; }
****************************************************************
10. C program to check whether a number is palindrome or not:
#include <stdio.h> int main() { int n, num, rev = 0; /* Input a number from user */ printf("Enter any number to check palindrome: "); scanf("%d", &n); /* Copy original value to 'num' to 'n'*/ num = n; /* Find reverse of n and store in rev */ while(n != 0) { rev = (rev * 10) + (n % 10); n /= 10; } /* Check if reverse is equal to 'num' or not */ if(rev == num) { printf("%d is palindrome.", num); } else { printf("%d is not palindrome.", num); } return 0; }
****************************************************************
11. C program to reverse order of words in a string:
#include <stdio.h> #include <string.h> #define MAX_SIZE 100 // Maximum string size int main() { char str[100], reverse[100]; int len, i, index, wordStart, wordEnd; printf("Enter any string: "); gets(str); len = strlen(str); index = 0; // Start checking of words from the end of string wordStart = len - 1; wordEnd = len - 1; while(wordStart > 0) { // If a word is found if(str[wordStart] == ' ') { // Add the word to the reverse string i = wordStart + 1; while(i <= wordEnd) { reverse[index] = str[i]; i++; index++; } reverse[index++] = ' '; wordEnd = wordStart - 1; } wordStart--; } // Finally add the last word for(i=0; i<=wordEnd; i++) { reverse[index] = str[i]; index++; } // Add NULL character at the end of reverse string reverse[index] = '\0'; printf("Original string \n%s\n\n", str); printf("Reverse ordered words \n%s", reverse); return 0; }
**********************************************************
12. C program to count frequency of digits in an integer:
#include <stdio.h> #define BASE 10 /* Constant */ int main() { long long num, n; int i, lastDigit; int freq[BASE]; /* Input number from user */ printf("Enter any number: "); scanf("%lld", &num); /* Initialize frequency array with 0 */ for(i=0; i<BASE; i++) { freq[i] = 0; } /* Copy the value of 'num' to 'n' */ n = num; /* Run till 'n' is not equal to zero */ while(n != 0) { /* Get last digit */ lastDigit = n % 10; /* Remove last digit */ n /= 10; /* Increment frequency array */ freq[lastDigit]++; } /* Print frequency of each digit */ printf("Frequency of each digit in %lld is: \n", num); for(i=0; i<BASE; i++) { printf("Frequency of %d = %d\n", i, freq[i]); } return 0; }
****************************************************************
13. C program to count number of digits in an integer:
#include <stdio.h> int main() { long long num; int count = 0; /* Input number from user */ printf("Enter any number: "); scanf("%lld", &num); /* Run loop till num is greater than 0 */ do { /* Increment digit count */ count++; /* Remove last digit of 'num' */ num /= 10; } while(num != 0); printf("Total digits: %d", count); return 0; }
*************************************************************
14. C program to swap first and last digit of a number:
#include <stdio.h> #include <math.h> int main() { int num, swappedNum; int firstDigit, lastDigit, digits; /* Input number from user */ printf("Enter any number: "); scanf("%d", &num); /* Find last digit */ lastDigit = num % 10; /* Find total number of digit - 1 */ digits = (int)log10(num); /* Find first digit */ firstDigit = (int)(num / pow(10, digits)); swappedNum = lastDigit; swappedNum *= (int) pow(10, digits); swappedNum += num % ((int) pow(10, digits)); swappedNum -= lastDigit; swappedNum += firstDigit; printf("Original number = %d", num); printf("Number after swapping first and last digit: %d", swappedNum); return 0; }
**********************************************************************************
For more practice questions, go to Questionnare.