Lets write a C program to enter number till the user wants. At the end it should display the count of positive number, negative number and zeros entered, using Ternary Operator or Conditional Operator and without using arrays.
Lets write a C program to enter number till the user wants. At the end it should display the count of positive number, negative number and zeros entered, without using arrays.
Output 1: Enter the limit 8 Enter 8 numbers 1 -5 0 6 -2 0 5 4
Positive Numbers: 4 Negative Numbers: 2 Number of zero: 2
Output 2: Enter the limit 10 Enter 10 numbers 2 6 9 3 -5 -7 0 9 -10 -50
Positive Numbers: 5 Negative Numbers: 4 Number of zero: 1
Logic To Count Positive, Negative and Zero without using Array
We ask the user to enter the maximum numbers he or she wants to enter, and store it inside variable limit. Now we iterate the while loop limit number of times. Inside the while loop, for each iteration, until limit is equal to zero, we keep asking the user to enter a number. Once the user enters the number we check if its greater than 0, if its true we’ll increment the value of variable positive by one. If the user entered number is less than 0, then we increment the value of variable negative by one. If the user entered number is neither greater than 0 nor less than 0, then its a zero – so we increment the value of variable zero by one.
For each iteration of the while loop, we decrement the value of variable limit by one. Once the value of variable limit is 0, control exits the while loop and the result will be printed. That is, the number of positives, negatives and the zeros entered by the user.
Write a C program to find absolute value of a number entered through the keyboard.
Absolute Value In mathematics, the absolute value or modulus |x| of a real number x is the non-negative value of x without regard to its sign. The absolute value of a number may be thought of as its distance from zero.
Note: abs() is a builtin method/function present in library/header file stdlib.h
Example For Absolute Value of a Number
1. If user enters/inputs a value of 5. Then the distance from 0 to 5 is 5 units. So the absolute value of 5 is 5. Mathematically its written as |5| = 5. Its read as Modulus 5 is 5.
2. If user enters/inputs a value of -5. Then the distance from 0 to -5 is 5 units. So the absolute value of -5 is 5. Mathematically its written as |-5| = 5. Its read as Modulus -5 is 5.
Expected Output for the Input
User Input: Enter a positive or negative number -14
Output: Absolute Value of -14 is 14
Video Tutorial: C Program To Find Absolute Value of a Number
Source Code: C Program To Find Absolute Value of a Number
#include<stdio.h>
#include<stdlib.h>
int main()
{
int num;
printf("Enter a positive or negative number\n");
scanf("%d", &num);
printf("Absolute Value of |%d| is %d\n", num, abs(num));
return 0;
}
Output 1: Enter a positive or negative number 14 Absolute Value of |14| is 14
Output 2: Enter a positive or negative number 41 Absolute Value of |41| is 41
Output 3: Enter a positive or negative number -2 Absolute Value of |-2| is 2
Output 4: Enter a positive or negative number 2 Absolute Value of |2| is 2
Output 5: Enter a positive or negative number -100 Absolute Value of |-100| is 100
Note: abs() works only for integer values and not for floating or double type data.
According to the Gregorian Calendar, it was Monday on the date 01/01/01. If any year is input through the keyboard write a program to find out what is the day on 1st January of this year.
Note: From 01/01 we understand that it’s 1st of January. We shall take the year as 1900. We also know that 01 January 1900 was Monday.
Logic To Find The Day on 01 January using Gregorian Calendar
We take reference year as 1900. We ask the user to enter a year between 1900 and 2099 and store it inside the address of variable year. Now we find the difference (1900 – year) and store it inside variable diff.
Using while loop, we loop through until reference year(1900) is less than the user entered year. Inside the while loop we check for all the leap years present from 1900 to user entered year.
Next we calculate exact number of days between 1900 and user entered year using formula:
diff = ref_year – year; Total no of leap years is calculated and stored in variable leap.
Total_days = (diff – leap) x 365 + leap x 366;
Now every year has 12 months, but each month has different number of days. But every week has exactly 7 days. So we divide Total_days by 7 and store the reminder inside variable day.
Note: Since our reference year 1900 has Monday on 1st of January. So we take Monday as first day:
We make use of Switch case to match the number in variable day to the day of the week.
Source Code: C Program To Find The Day on 01 January using Gregorian Calendar
#include < stdio.h >
int main()
{
int ref_year = 1900, year, leap = 0, diff, total_days = 0, day = 0;
printf("Enter a year between 1900 and 2099\n");
scanf("%d", &year);
diff = year - ref_year;
while(ref_year < year)
{
if(ref_year % 100 == 0)
{
if(ref_year % 400 == 0)
{
leap++;
}
}
else
{
if(ref_year % 4 == 0)
{
leap++;
}
}
ref_year++;
}
total_days = (diff - leap) * 365 + leap * 366;
day = total_days % 7;
printf("\nThe day on 01 January %d was ", year);
switch(day)
{
case 0: printf("Monday.\n");
break;
case 1: printf("Tuesday.\n");
break;
case 2: printf("Wednesday.\n");
break;
case 3: printf("Thursday.\n");
break;
case 4: printf("Friday.\n");
break;
case 5: printf("Saturday.\n");
break;
case 6: printf("Sunday.\n");
break;
}
return 0;
}
Output 1: Enter a year between 1900 and 2099 1900
The day on 01 January 1900 was Monday.
Output 2: Enter a year between 1900 and 2099 2015
The day on 01 January 2015 was Thursday.
Output 3: Enter a year between 1900 and 2099 2016
The day on 01 January 2016 was Friday.
Output 4: Enter a year between 1900 and 2099 2017
The day on 01 January 2017 was Sunday.
Output 5: Enter a year between 1900 and 2099 2018
The day on 01 January 2018 was Monday.
Lets Use Ternary / Conditional Operator To Find Leap Year
We modify above program and use Ternary Operator or Conditional Operator to find leap year. You can find detailed explanation of finding leap year using Conditional Operator here: C Program To Check Leap Year Using Ternary Operator
Source Code: C Program To Find The Day on 01 January using Gregorian Calendar Using Ternary or Conditional Operator
#include < stdio.h >
int main()
{
int ref_year = 1900, year, leap = 0, nonleap = 0, total_days = 0, day = 0;
printf("Enter a year between 1900 and 2099\n");
scanf("%d", &year);
while(ref_year < year)
{
(ref_year % 100 == 0) ?
( (ref_year % 400 == 0)?
(leap++):
(nonleap++)
) :
( (ref_year % 4 == 0)?
(leap++):
(nonleap++)
);
ref_year++;
}
total_days = nonleap * 365 + leap * 366;
day = total_days % 7;
printf("\nThe day on 01 January %d was ", year);
switch(day)
{
case 0: printf("Monday.\n");
break;
case 1: printf("Tuesday.\n");
break;
case 2: printf("Wednesday.\n");
break;
case 3: printf("Thursday.\n");
break;
case 4: printf("Friday.\n");
break;
case 5: printf("Saturday.\n");
break;
case 6: printf("Sunday.\n");
break;
}
return 0;
}
Logic To Draw Pyramid of Alphabets, using While Loop
We ask the user to enter the maximum number of rows for the pyramid and store it inside the address of variable num. We declare and initialize a variable count to 1(indicating first row of the pyramid).
In the outer while loop we check if count is less than or equal to num. For each iteration of the while loop we increment the value of count by 1. So the count value will have the row number i.e., for each iteration of the outer while loop we select row one by one (to print the alphabets).
Inside first inner while loop we print the adequate number of space for each row. Inside the second inner while loop we actually print the alphabets needed for each row.
At the end the result will be a pyramid with the number of rows as input by the user.
Note: Inside second nested while loop we are checking for the condition – if alphabet is equal to 90(ASCII value of Z), and then reinitializing it to 64(but ASCII value of A is 65), that is because after the if condition is executed we have alphabet++; statement which increments the value of variable alphabet from 64 to 65(which is the ASCII value of A).
Alphabets and ASCII Value We can even write the code in if else block as shown below: