0% found this document useful (0 votes)
70 views

(English (Auto-Generated) ) C Programming

The document provides instructions on how to set up a C programming environment and write a simple "Hello World" program in C. It discusses downloading Visual Studio Code as an IDE, installing necessary extensions and compilers like GCC, creating a new C file, including standard input/output libraries, writing code within the main function, printing output statements, and running the code to display "Hello World". The goal is to explain the basic steps needed to get started writing C programs.

Uploaded by

roommates060708
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
70 views

(English (Auto-Generated) ) C Programming

The document provides instructions on how to set up a C programming environment and write a simple "Hello World" program in C. It discusses downloading Visual Studio Code as an IDE, installing necessary extensions and compilers like GCC, creating a new C file, including standard input/output libraries, writing code within the main function, printing output statements, and running the code to display "Hello World". The goal is to explain the basic steps needed to get started writing C programs.

Uploaded by

roommates060708
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 178

all right what's going on everybody it's

you bro hope you're doing well and in

this video i'm going to explain how we

can get started writing code in c so sit

back relax and enjoy the show

if you wouldn't mind please like comment

and subscribe one like equals one prayer

for the youtube algorithm

i'm going to tell you why you need to

learn c c is a middle level language

that originated in the 1970s and it is

one of the most widely used programming

languages to date on a spectrum of

high-level languages to low-level

languages c is a middle level language

low-level languages are efficient they

work closely with machine architecture

they consume less memory and they're

fast as however they're difficult

to understand and it takes more time to

write code that's in a low level format

high-level languages are easier to work

with easier to understand they allow for

more abstraction but they're slower they

use more memory and they're abstract so

it's difficult to work with low level

hardware and systems a major advantage

of middle level languages is that they

can act as a bridge between high-level

software and applications as well as

low-level hardware and embedded systems

most compilers kernels and operating

systems are written in c

nearly all programming languages are

influenced by c in some way c is what


provided many of the original

programming concepts such as variables

data types loops arrays functions etc in

fact the python language is written with

c the default implementation is known as

c python if you're already familiar with

the programming language learning c will

give you an even deeper understanding of

how those operate c is literally

everywhere from databases to

self-driving cars operating systems to

embedded systems it's been around for so

long and used for so many purposes here

are some important notes before we get

started c is not an object-oriented

language it's procedural not abstract c

plus plus is an object-oriented

extension of c if you know c you already

know some c plus plus however c is a

difficult language for beginners don't

get discouraged you can do it so what

you'll need you'll need an ide an

integrated development environment which

is basically a fancy text editor to help

us write c code as well as a gnu

compiler collection which we abbreviate

to simply gcc this compiles or otherwise

converts c code to machine code you know

all those ones and zeros that a machine

can read let's begin by downloading an

ide i recommend vs code it's flexible

and you can use vs code for more than

just c

all right what you're gonna do is head


to code.visualstudio.com

and then look for this drop down menu to

install for your operating system i'm

running windows i'm going to install for

windows and then i will simply just open

when done

okay accept the license agreement next

you can create a desktop icon and add to

path next

then install

and then give it a second

or a couple minutes

then you can launch this if you prefer i

think i will okay we are now within

visual studio head to the left hand menu

for extensions we're going to install

two extensions c

c plus plus that contains intellisense

and a couple other useful things so

install that

and then next we will install code

runner code runner

install after installing these

extensions you may need to restart vs

code

okay then we are going to add a new

folder go to the left-hand menu add

folder i'll create a new folder on my

desktop so i'll right click go to new

folder

i'll name this c files

then add

i think you might have to click within

the folder

okay we now have a folder named c files


then to create a new c file go to new

file after clicking this folder

i'll name this hello world and make sure

that it ends with the c extension

helloworld.c

and we now have a c file that we can

work with and on this tab at the top

this says hello world dot c now the next

thing that we'll need is that gcc

compiler to convert c code to machine

code now if you're running windows this

is how to check to see if you have a gcc

compiler already installed

so you're going to open command prompt

and enter this command g plus plus

dash dash version i already have a gcc

compiler already installed if you're

getting an error then you'll probably

have to download one here's an

interruption from future bro i traveled

from the future to the past to deliver

you this message so if you need to

install gcc on a mac operating system

what you're going to do within a

terminal window is enter the following

command c lang dash dash version if c

lang isn't installed enter the following

command xcode dash select dash dash

install and that's all there is to it if

you need additional assistance you can

always visit this webpage

code.visualstudio.com

docs slash cpp and if you're running on

linux within a terminal window you'll


enter this command instead gcc

dash v if gcc isn't installed run this

command

sudo apt-get update and then next type

in this long command and if you need any

additional assistance or documentation

you can always visit this webpage so

google this min gw dash w64

install.exe and the first link is for

sourceforge so click on that

then you can find this underneath home

browse development compilers

mingw64 for 32 and 64-bit windows and

the download should start automatically

so click next

change the architecture to

x8664

next and then copy this path for the

destination folder it's going to be

relevant later

then next next and finish

now what we're going to do is add our

path to our gcc underneath environment

variables so open up control panel

then go to system and security

then system

scroll down to advanced system settings

underneath the advanced tab

go to environment variables

underneath path we are going to edit i

already have this path configured so i'm

going to delete this you probably won't

have this setup and then new

paste that file path to the gcc compiler

then add slash min 64 slash bin then


okay

okay

and then you can close out of everything

and now we need to configure our build

task so go to a terminal

your default build task if nothing

appears within the search box you may

need to restart vs code i think i do

so i'm going to restart it

and then let's try that again terminal

configure default build task and there

it is i will select that

this creates a json file that tells vs

code how to compile the program and with

that out of the way we can begin coding

now before we do start coding anything

i'm going to increase the font size

because as you can see this font size is

really small so within vs code to change

the font size go to file preferences

settings and you can change that here

let's try maybe 20. you can also change

the font family too if you want and

everything

uh but let's close out of that and try

that again

okay that isn't too bad i'll stick with

this font size for now i also recommend

enabling autosave that's going to save

you a lot of headaches later in the

future so go to file

auto save

okay the first thing that we're going to

include within our c program is the word


hashtag include

so this is a pre-processor command that

tells the compiler to include the

contents of a file and the file that we

would like to include is within angle

brackets

std for standard io input output dot h

this file contains some useful functions

related to input and output so we'll

need that

now the entry point of our program is

the main function type int

main parentheses curly braces anything

within our main function is read

procedurally starting from the top and

working its way down so anything within

this set of curly braces is within the

main function and at the end of our main

function we're going to add the

statement return 0 semicolon a semicolon

is used to terminate statements kind of

like a period at the end of a sentence

at the end of our main function we have

this return zero statement this returns

the exit status of our program we return

a zero if our program runs successfully

with no errors if there is an error then

we'll return a 1. so now we can add

anything that we want within this main

function but we'll need return 0 at the

end to check for any errors

so let's print something to our console

as output so to display something we're

going to type print f parentheses

semicolon because we end our statements


with a semicolon and within the

parentheses add a set of double quotes

because we would like to literally print

something and you can type in whatever

you want let's say

i like pizza

then to run this code you can either

right click then go to run code

alternatively there is a run code button

in the top right corner of the s code so

after running this code this displays my

output i like pizza so what if i would

like to add a second line well i would

just follow these steps again so i need

another printf statement

print f parentheses semicolon any text i

would like to display i'll place that

within a set of double quotes this time

let's add a second line i like pizza

it's really

good

and then save

all right and this is what this looks

like

i like pizza it's really good so this is

all one long line what if i would like

my second line of text on the next line

well i can add an escape sequence for a

new line character so at the end of my

printf statement within the double

quotes i'll add

backslash n for a new line character

and let's try that again so i'm going to

clear my output make sure i save and


then run this again

i like pizza it's really good and then

we have that extra space at the bottom

because we added an additional new line

character which is optional

also take notice too that we have this

message exited with code equal zero so

if there are no errors and your program

runs successfully this function will

return zero if there is an error well

then this will return one so let's

misspell something let's say instead of

printf we just have print

so save and then run this again

okay it looks like we have an error

exited with code equals one

all right people well that's your first

c program in the next video we'll cover

escape sequences and comments i'll post

this code to the comments section down

below and pin it to the top if you would

like a copy for yourself but yeah that

is your first c program

hey you yeah i'm talking to you if you

learned something new then help me help

you in three easy steps by smashing that

like button drop a comment down below

and subscribe if you'd like to become a

fellow bro

[Music]

all right everybody welcome back in this

video i'm going to show you all how we

can compile and run a c program using

command prompt in my text editor i have

a simple c program that prints i love


pizza it's really good what we'll need

to do is open command prompt now before

we begin we should make sure that we

have a gcc compiler and to check that

just type gcc

minus minus version

and it looks like i have one so if

you're missing a gcc compiler check the

first video in the series and i'll show

you how to download one now step one to

compiling a c file is that we need to

change our active working directory so

that it's pointing to the folder

containing our c file an easy way to

change that is that we need the file

location so i'm going to right click on

my c file go to properties copy this

location and within command prompt i

will type cd to change directory and

then paste that location so our current

active directory is pointing to that

folder containing our c file and to

compile a c file you type

gcc

the name of the file

and mine is hello world dot c then hit

enter so nothing appears to happen and

that's good so let's take a look at the

c folder again this is the file that we

compiled it is an executable and all we

have to do is run that so that is the

third step a

exe enter

i love pizza it's really good so yeah


that's how to compile and run a c file

in command prompt first make sure that

you have a gcc compiler that would be i

guess step zero step one is to change

the active working directory to the

folder containing your c file compile

the c file with gcc the name of the file

and then run the compiled file a.exe so

yeah that is how to compile and run a c

file with command prompt if you found

this video helpful please be sure to

smash that like button leave a random

comment down below and subscribe if

you'd like to become a fellow bro

hey y'all what's going on everybody it's

you bro hope you're doing well and in

this video i'm going to explain to both

comments and escape sequences in c so

sit back relax and enjoy the show

all right welcome back so we have to

discuss comments and escape sequences so

a comment is some text that is ignored

by the compiler that is used as an

explanation description or a note for

yourself or anyone else reading over

your code so try to comment you will

type

two forward slashes then anything

afterwards is considered a comment and

will be ignored by the compiler this is

comment

blah so if i was to run this

this text will be ignored by the

compiler and we do not see that as


output i tend to use a lot of comments

when explaining things so this is

something you'll see fairly often in my

videos now if you need a multi-line

comment this is only for a single line

comment if i was to type this again

without those forward slashes this is a

comment well our program thinks that

this is some sort of code if we need a

multi-line comment you will instead type

forward slash asterisk then anything

after is considered a comment you can

see that this is all green now anything

up to a asterisk and forward slash will

be a multi-line comment

this

is a

multi-line

comment

and again this is ignored by the

compiler so if you need to write a note

description or explanation for yourself

or for somebody else you can write that

within a single line comment or a

multi-line comment and i use a lot of

these for teaching purposes because i

have a lot of explaining to do right

okay let's move on to part two of this

video we have escape sequences an escape

sequence is a character combination

consisting of a backslash followed by a

letter or combination of digits they

specify actions within a line of text

otherwise known as a string so we


learned in the last video that we can

end our printf statement with a

backslash n to create a new line this is

the escape sequence for a new line and

within a string of text a line of text

and within a string of text we can add a

new line wherever we want and as many as

we want let's say that after each word

within my line of text i would like to

add each word to a new line so i can use

the escape sequence for new line after

each of these words so that would look

like this i like pizza but you may have

to work on the spacing though

that's a little bit better so wherever

you place a backslash n that will create

a new line character another escape

sequence is backslash t for a tab

so let's say i have a few numbers here

one two three and i would like to create

even spacing between these numbers i can

just add an escape sequence for a tab

character one backslash t two backslash

and these numbers are spaced evenly

or i can get really fancy and add a new

line character

then maybe a four

tab five tab

six new line character

then maybe a7

tab 8

tab and then a 9.

so now we have a grid of numbers all

spaced evenly so that is the new line


escape sequence and the tab escape

sequence you can use them wherever and

however many you want within a string of

text within a printf statement what if

we need to display quotes like we're

quoting somebody

i like pizza

this is a quote from

abraham

lincoln

probably i need to place quotes around i

and pizza

so if i were to write it like that well

our program doesn't know where our

string of text begins and ends it's kind

of confused if we need to literally

print double quotes we will add an

escape sequence

backslash then double quote

and then add that here as well so this

allows us to literally print some quotes

as i'll put

i like pizza abraham lincoln probably or

if you need to display single quotes

backslash single quotes

so that's how to display single quotes

and if you need to display a backslash

that would be double backslashes

this will literally print backslashes

so yeah those are just a few escape

sequences here's a list of a bunch of

them but a lot of these really aren't

going to be relevant to us so yeah those

are comments and escape sequences and


see if you found this video helpful

please be sure to destroy that like

button drop a random comment down below

and subscribe if you'd like to become a

fellow bro

hey yeah it's you bro hope you're doing

well and yeah we're doing stuff with

variables today in c so sit back relax

and well enjoy the show

welcome back to another video so

variables variables are allocated space

and memory to store a value we refer to

a variable's name to access the stored

value

that variable now behaves as if it was

the value that it contains but to create

a variable we first need to declare a

name for a variable and then precede it

with the type of data that we are

storing creating a variable is done in

two steps declaration and initialization

so we need to first declare a variable

to allocate some space in memory to

store a value so we need to precede our

variable name with the data type of what

we plan on storing within this variable

if i need to store a whole integer we

would precede our variable name withint

int for integer and let's say that this

is variable x

so this step is declaration we are

creating space and memory to store a

value and to actually store a value that

step is initialization so we would take

our variable name


x in this example and set it equal to

some value so we declared that this

variable is an integer we can only store

whole integers maybe the number one two

three

so this is

initialization or you could combine

these steps together and let's create

into y into y equals 3 2 1. this is both

declaration and initialization so

creating and storing a variable takes

two steps declaration and initialization

and in order to create a variable you

have to precede the variable name with

the data type of what you plan on

storing within that variable int for a

whole integer but there's other data

types too let's create some more

variables what about int age with

variable names you're not limited to

only just x and y you can really name it

whatever you want within some

limitations but make sure that the

variable name is descriptive of what it

does so age is going to store an edge

let's say that i am 21 years old so this

is an integer a whole number if we need

a number containing a decimal portion

that would be a float for floating point

number so one example of a variable that

could contain a floating point number is

a gpa grade point average let's say that

my grade point average is a

2.05 so this is a floating point number


it's a number that contains a decimal

portion we can also store single

characters with the char data type like

you're pronouncing charizard and this

will be a letter grade let's say now to

store a single character we have to

place it within single quotes when we

initialize it with my grade variable

what about a c like my average grade is

a c remember everybody c's get degrees

so char stores a single character

now c isn't an object-oriented language

so there is no string data type because

strings are technically objects so if we

would like to store like somebody's name

we need a series of characters so we can

create what is called an array and to

create an array we would follow our

variable name with a set of square

brackets and then assign this equal to

some string of text some series of

characters place your series of

characters within double quotes and we

can store more than one character so

this data type would be technically an

array of characters i'll create a whole

separate video on arrays this is

basically how you can emulate a string

it's really just a whole combination of

single characters there's still a lot

more data types than just these four i

thought i would cover just some of the

more basic data types just because in

this video we're going to focus more on

variables than data types i'm planning a


separate video just dedicated to data

types because there's way more data

types than just these four there's bytes

there's doubles there's longs etc now

how can we display the value stored

within a variable within a printf

statement here's how we have to use what

is referred to as a format specifier

let's say we have a printf statement

and i would like to display my age

within a message so let's create some

text you are

age years old if i would like to display

the value contained within my edge

variable wherever i would like to insert

that value i will place a format

specifier which is represented by a

percent sign and then follow this with a

secret character that represents the

data type of what we're inserting so if

i need to display my age variable i will

use a percent sign as a placeholder

followed by d for decimal and then after

my string of text outside of the double

quotes add comma then the name of the

variable you would like to insert at

this placeholder so at this location i

will insert age and then let's try this

you are 21 years old so let's try that

again with a different variable let's

say let's go with name

i'll add a second printf statement print

and then let's say hello


and i would like to insert my name here

so use a percent sign as a placeholder

it's a format specifier then to display

a character array that would be s for

string

and then add comma

name

oh then we may need to add a new line

character to the end of these because i

forgot let's try that again

hello bro you are 21 years old okay

let's display our

grade printf

then within quotes

your average

grade

is

then to display a character variable

that would be percent c for character

then outside of our double quotes add

comma the name of the variable we would

like to insert at this location so comma

grid

i think i'm just going to space these

out a little bit

okay then i will add a new line

character to the end of this

okay hello bro you are 21 years old your

average grade is c

then to display a float that would be

percent f

print f

your gpa

is

percent f
then i'll add a new line character

so follow this with comma the name of

the variable gpa

okay your gpa is 2.05

so later on we'll discuss more about

format specifiers there's ways that we

can format how our variables are

displayed i just realized that i

misspelled average twice so yeah those

are variables they are allocated space

and memory to store a value we refer to

a variable's name to access the stored

value

that variable now behaves as if it was

the value that it contains

but to declare a variable we have to

state what type of data that we are

storing within that variable so yeah

those are variables if this video helped

you out help me out by smashing that

like button leave a random comment down

below and subscribe if you'd like to

become a fellow bro

all right what's going on people let's

discuss more about data types we

discussed a few in the last video but

there's a few more that you should be

made aware of so chars they store a

single character and use the percent c

format specifier to display a single

character there's an array of characters

which can store one or more characters

then to display that you use percent s

as the format specifier floats they will


store a decimal number and we use the

percent f format specifier to display a

floating point number and then we have

integers which only store a whole

integer there is no decimal portion and

we use percent d to display an integer

now along with floats we have doubles

doubles have double the precision of a

float we can store even more significant

digits floats use four bytes of memory

they have 32 bits of precision and we

can store between six to seven

significant digits doubles they have

eight bytes of memory double that of

floats and they have 64 bits of

precision and we can store between 15 to

16 significant digits with my float and

my double i'm storing the first several

digits of pi i'm going to attempt to

display as many digits of pi as i can

with a float so i'm going to display

these so to display a float use percent

f and lf for a double which means long

float now by default when i use printf

to display a floating point number or a

double this will only display the first

six to seven digits but we can actually

change that we'll discuss more about

these in the next video on format

specifiers if i would like to display

even more digits after the decimal i

will add zero point and the amount of

digits i would like to display so i

would like to display 15 digits after my

decimal and i'll do that for my double


as well so after the percent signed 0.1

f then add lf and let's take a look at

these numbers okay after my two which is

i believe the sixth digit after the

decimal we actually lose our precision

these numbers are not the same but our

double will actually retain these

numbers so point being a double is even

more accurate than a floating point

number there is more precision but it

uses more memory a double uses eight

bytes of memory because of this reason

we tend to use doubles a lot more than

floats just because they're more precise

we don't want to lose our precision next

up we have booleans to work with

booleans and c include this at the top

std bool.h booleans store true or false

so they work in binary one represents

true and zero represents false so when

you need to declare a boolean variable

you type bool then a variable name and

you set it equal to true or false

technically we only need one bit to

represent true or false one for true and

zero for false but this still uses up

one byte of memory and then to display a

boolean you can use percent d so if i

was to display this boolean variable i

would use percent d so one corresponds

to true and zero corresponds to false

although there are some tricks that we

can do in the future where we could

display the word to true or the word


false but for now we're going to stick

with percent d as the format specifier

so these work in binary one for true

zero for false now another thing that we

can do with chars is that we can store a

whole integer between the range of

negative 128 to positive 127. so in this

example we have char f and i will store

the integer number 100 we can display

this number as either a decimal an

integer or a character so if i was to

display this number as a character we

will use the ascii table to convert this

number to a character representation the

ascii table has a range between 0 to 127

so if i was to display this number as a

decimal using the percent d format

specifier of course this will display as

100 but if i was to convert this to a

character using the percent c format

specifier this has a corresponding

character and that would be lowercase d

so i'm actually going to change this to

something else what about i don't know

uh 120 so let's see what the character

representation of that number is and

that would be

a lowercase x so you can use chars to

store more than single characters you

can also use them to store a whole

integer however the range is between

negative 128 to positive 127 because

they have one byte of memory now there

is a keyword unsigned so when you

declare a variable that is unsigned we


disregard any negative numbers so

effectively this doubles our range with

our positive numbers so if we have

unsigned char we can store a number

between 0 to positive 255 because we

know we're not going to store a negative

number so then if you need to display an

unsigned character we can use just

percent d i'm going to store 255 within

my unsigned chart and that would be of

course 255. however if we go beyond this

range this will overflow and go back to

zero

so if i was to display this we have a

warning unsigned conversion from int to

unsigned chart so then this resets back

to zero so if you go beyond the maximum

range this will reset all the way back

to zero whatever the beginning is so if

you add this keyword unsigned you can

effectively double the range of positive

numbers that you can store within a

variable by default most data types are

already signed but we don't need to

explicitly type that so point being with

chars you can store more than a single

character you can store a whole integer

between ranges negative 128 to positive

127 if it's signed if it's unsigned you

can store numbers between 0 to 255. you

can display them as an integer by using

the percent d format specifier or you

could convert them to a character using

the ascii table by using the percent c


format specifier next we have short

hints short ins use two bytes of memory

they can store a number between negative

32

768 to positive 32

767 because while they use two bytes of

memory they can only store a number so

large and if it's an unsigned short int

the range is instead between 0 to 65 535

and we use the percent d format

specifier to display a short in so

within my printf statement i'm going to

display these two numbers so i will

display variable h and i h is a short

integer and i is an unsigned short

integer

so these are the maximum values for a

short integer and an unsigned short

integer and like i discussed with chars

if we go beyond this range we will

encounter an overflow so i'm going to

change this short end to 32768

and let's see what number displays

so this will overflow and reset this

value back to the minimum value which in

this case is negative 32

768 and if you do the same thing with

the unsigned short integer that would be

zero because that's the minimum value

for an unsigned short integer so those

are short integers they use two bytes of

memory and they can store numbers

between these ranges depending if it's

signed or unsigned oh and another way of

writing these you don't necessarily need


to declare these with the word and you

could just say short and that would do

the same thing people usually just call

them shorts instead of short ants so

those are what shorts are now with

integers we kind of discussed this in

the last video just briefly integers

store a whole number between just under

negative 2 billion to just over positive

2 billion because they use 4 bytes of

memory and we use the percent d format

specifier to display a signed integer if

that integer is unsigned the range

changes from 0 to just over positive 4

billion however there is a different

format specifier to display an unsigned

integer you instead use percent u so

then let's display these percent d for a

signed integer and percent u for an

unsigned integer

and these are the maximum numbers and

then if i was to exceed the range

this again would cause an overflow and

reset these numbers back to their

minimum values so those are standard

integers they use four bytes of memory

so they can store numbers between these

ranges depending if they're signed or

unsigned all right the last data type

we're going to talk about for this topic

is a long long integer now the reason

that we have long twice is that with

standard integers these are already

considered longs but we don't need to


explicitly type long for standard

integers so to represent a really large

number we can use a long long integer

and these use eight bytes of memory the

effective range for a signed long long

integer is just underneath nine

quintillion to just over nine

quintillion and the format specifier for

a long long integer one that is signed

is percent lld

now if it's unsigned that changes the

range between zero to just over positive

18 quintillion and the format specifier

is percent llu then let's display these

so

for a signed long long integer that is

lld and if it's unsigned that is llu now

we'll encounter a warning

so this warning applies to our unsigned

long long integer

integer constant is so large that it is

unsigned so one way in which we can

prevent that warning is after our number

within our unsigned long long integer

add a u to the end of this so then we

can display this number with no warning

so since long long integers use so many

bytes they can store a gigantic number

we tend to not use long long integers

very often because well we don't really

have a need for this large of a number

but in certain circumstances you might

perhaps you're dealing with the speed of

light or something you may need to use a

long long integer but commonly we use


standard integers a lot more well yeah

everybody those are even more c data

types we likely won't be using most of

these but you should still be made aware

of their existence i would say that

we're going to focus on chars array of

chars

doubles booleans

and integers so pay attention to those

ones but you should still be made aware

of the existence of other data types

just in case you encounter them if you

found this video helpful please smash

that like button leave a random comment

down below and subscribe if you'd like

to become a fellow bro

all right welcome back everybody in this

video i'm going to show you while a few

extra things that we can do with format

specifiers using a format specifier

within a printf statement we can define

and format a type of data to be

displayed to use a format specifier you

use a percent sign then follow that

percent sign with a certain character

depending on the type of data you would

like to display let's say that we have

three variables maybe we have an online

store or something like that so let's

say that these are of the float data

type and we'll have three items for sale

item one and make up some price let's

say that the first item is five dollars

and seventy five cents


and we have item two

and this will be ten dollars even and

then we have item three and this will be

one hundred dollars and ninety nine

cents so let's display item one item two

in item three with a print f statement

print f and within a string let's say

item one colon space then i'll add a

dollar sign wherever you would like to

insert a value or variable you will use

that format specifier the percent sign

so after my dollar sign i'll add item

one so that would be percent then for

floats you need f and then after the

string add comma

item one then let's just make sure that

this works so we're going to be

formatting this output what if we don't

want all the zeros we can set the

decimal precision of a float or double

after the format specifier add a dot and

the amount of digits you would like to

display if i would only like to display

two digits after the percent i will add

point two and this will only display two

digits for the amount of cents that we

owe okay now let's do the same thing for

items two and three so item two

item two

item three

item three

okay then let's add a new line character

because i forgot so new line

new line and new line

much better another thing that we can do


with format specifiers is that we can

set a minimum field width so just add a

number after the percent sign let's say

that i would like to allocate eight

spaces worth of room to display my

number

so after the percent sign but before the

decimal add how many spaces you would

like to set for the minimum field width

let's say eight

and let's see the new output okay there

we go however it's all right aligned if

you would like this left aligned you

would use a negative sign after the

percent to left align all this this

would be

negative whatever number you would like

to allocate so the number is left

justified but we still have all of this

room after so that's what a format

specifier is it defines and formats a

type of data to be displayed so place a

format specifier within a string use a

certain character for the type of dad

you would like to display you can set

decimal precision for floats and doubles

you can set a minimum field width to

display your output if you would like to

line things up like you can see here and

you can left or right align your output

so yeah those are format specifiers if

you found this video helpful please be

sure to smash that like button leave a

random comment down below and subscribe


if you'd like to become a fellow bro

hey everyone so i'm going to attempt to

explain constants in about a minute a

constant is a fixed value that cannot be

altered by the program during its

execution i have a variable pi pi equals

3.1415

but what if we accidentally or somebody

else changes the value of pi it's an

important number pi now equals 420 69.

since this value was changed this will

alter the result of our program to

prevent a variable or value from being

changed we can turn that variable into a

constant by preceding the data type with

this keyword const and a common naming

convention with constants is that you

make all the letters uppercase although

it's not necessary but it's considered

good practice so if i attempt to take

our constant and assign this a different

value we'll run into an error error

assignment of read-only variable pi that

is what a constant is it's a fixed value

that cannot be altered by the program

during its execution and it provides a

little bit of security so if you found

this video helpful please be sure to

smash that like button leave a random

comment down below and subscribe if

you'd like to become a fellow bro

well well well welcome back so we need

to talk about arithmetic operators

because well this wouldn't be a full

course without them so as you probably


know arithmetic operators are well

addition subtraction multiplication

division and there's a few others too

unique with programming such as modulus

increment and decrement so let's go over

a few let's say that we have int z and

if we need to add two numbers we could

say x plus y

equals z and then display the sum which

of course is seven so subtraction is

well minus five minus two is three

multiplication is an asterisk five times

two

equals 10. okay now pay attention to

this with division so 5 divided by 2

equals 2.5 right well that's where

you're wrong it's 2 because we're

storing the result within an integer and

with integers we can only store whole

numbers so we will lose that decimal

portion it will be truncated there's a

few things we'll need to change first

we'll need to store the result within a

float or a double and then let's display

this percent f for a float okay another

thing that we need to change too and

that involves integer division if we're

dividing by an integer we'll truncate

that decimal portion there's one of two

things we can do we can either change

our divisor to a float

or a double and that will solve that

problem 2.5 or if we would like to keep

this as an integer we can convert this


integer to a float or double by

preceding the divisor with

float

or double either one

so if i would like to keep y as an

integer and we divide x by y we will

convert 2 into a float so 2.0 and store

the result within float z and the result

is 2.5 so if you're performing division

with any integers you need to pay

attention to integer division and you

may need to cast your divisor as a float

or as a double now we have modulus

modulus gives you the remainder of any

division 5 does not divide by 2 evenly

int z equals x

modulus y

and if we display z

so make sure to change your format

specifier if you didn't the remainder of

five divided by two is one

if this was four four divides by two

evenly and the result is going to be

zero modulus gives you the remainder of

any division it's actually pretty

helpful to find if a number is even odd

all you do is say modulus 2 or some

variable containing the value of 2

either way and then we can increment or

decrement a number by 1. if i need to

increment x for some reason you'll see

this when we get to the video on loops i

could say x

plus plus

and then let's display x


x incremented by one

would be six

and then let's decrement y y minus minus

and y decremented by one equals one so

yeah everybody those are a few

arithmetic operators a lot of these are

fairly simple you know addition

subtraction multiplication and division

do pay attention to integer division

because that can throw off your program

then there's also modulus increment and

decrement if you found this video

helpful please remember to smash that

like button leave a random comment down

below and subscribe if you'd like to

become a fellow bro

hey welcome back everybody here's a

super quick video on augmented

assignment operators they're used to

replace a statement where an operator

takes a variable as one of its arguments

and then assigns the result back to the

same variable now what the heck does

that mean okay so let's say that we need

to increment the value of x by one

without using an increment operator we

could say x equals x plus one so writing

this out can be somewhat redundant there

is a shortcut by using an augmented

assignment operator whatever variable

you would like to perform an operation

on you will list that variable use an

arithmetic operator equals and then some

value so writing this would increment x


by one so let's go over a few examples

we have into x equals ten so i could

write x equals x plus two to increment x

by two right or i could say as a

shortcut x plus equals two and that will

do the same thing and that's twelve now

let's try minus

x equals x minus three using the

augmented assignment operator that would

be x minus equals three which is seven

what about x equals x times four well

that would be x times equals four x

times four

is forty and division

x equals x divided by five

the augmented assignment operator of

this equation is x divided by equals

five

which is two and lastly modulus so what

about x equals x modulus two

that would be x modulus equals two

x modulus two equals zero well yeah

everybody those are augmented assignment

operators they're basically a shortcut

they're used to replace a statement

where an operator takes a variable as

one of its arguments and then assigns

the result back to the same variable

it's a shortcut if this video helped you

out you can help me out by smashing that

like button leave a random comment down

below and subscribe if you'd like to

become a fellow bro

hey uh welcome back in this video i'm

going to show you all how we can accept


user input in c now if you're using vs

code we need to switch from using our

output tab to terminal and one way in

which we can make that change is by

going to file preferences settings

search for code runner

and then check this run in terminal so

then when we run our code it will now

display in terminal which accepts user

input output doesn't because well it's

only for output and you can ignore this

this is a powershell command that will

compile and run your c program but if

you prefer instead of powershell you can

use command prompt but you would need to

manually compile and run your code since

i'm using windows that would be a gcc

the name of your c program hello world

dot c that will compile your program

into an executable named a dot exe

then just type that to run it but i'll

stick with using powershell just to kind

of simplify things okay now how can we

accept user input let's declare a

variable age but not yet assign it next

we're going to create a prompt to ask

the user for their age and we'll ask how

old are you

to accept user input we can use the scan

f function it's kind of the inverse of

printf printf is used to display

something as output scanf is used to

read input what we're going to place

within our scanf function is the format


specifier of the variable we will insert

a value into if we need to accept a

number an integer as input the

corresponding format specifier is

percent d

then add a comma the name of the

variable but precede the variable name

with an ampersand that is the address of

operator let's print a message that

contains the value stored within our

variable edge u

are

percent d

years old so this is our format

specifier it functions as a placeholder

and i would like to display the value

contained within my edge variable so

things are getting a little bit

difficult to read i'm just going to

precede this with a new line

okay let's try that again how old are

you let's say that i'm 21 not anymore

but let's pretend that i still am

you are 21 years old that's basically

how to accept user input you use the

scanf function use the format specifier

of the variable list the variable

appreciated with the address of operator

let's try this again but instead accept

a string from a user like a name we need

to declare an array of characters and

set asides so let's create a character

array named name

now with character arrays we can't

change the size of the array after the


program is already running let's set a

max size of maybe 25 bytes for this

array if we go over this limit this will

cause a buffer overflow and let's ask a

user for their name so we'll create a

prompt

printf

what's your

name and i again will use scanf

list the appropriate format specifier

for character arrays which is percent s

then our variable name and use the

address of operator then at the end

we'll display our name

printf

hello

percent s

how are you

then comma name and before we run this

i'm just going to add some new line

characters just to make everything

easier to read

okay let's try it

what's your name i'll type in just my

first name not including any white

spaces

how old are you 21

hello bro how are you you are 21 years

old so now this time let's type in a

first and last name because this is

going to act a little bit bizarre what's

your name bro

code and this is separated with the

white space hit enter


hello bro it did not include my last

name how are you you are zero years old

so using the scan f function we will

read up to any white spaces so if your

user input is going to include a white

space we need to use a different

function and that is the f gets function

f gets

parentheses

and there are three things we will list

within the fgets function

the name of the variable and we do not

need the address of operator that

ampersand for this

then we need to set an input size i will

set this to 25 to match the size of our

array

and then std in which means standard

input so using this function we can read

any white spaces

what's your name i'll type in a first

name and a last name

how old are you 21

hello bro code and notice that our

output is actually being displayed on

the next line that's because when you

use the f gets function it will include

the new line character when you hit

enter if you need to get rid of that new

line character at the end so that it's

not included with your input here's what

we can do it's a little advanced but

we'll cover this in future videos we'll

include this import

include
string dot h

so using this import we can work with

strings all we're going to do is edit

our string and get rid of that newline

character at the end what i'm about to

show you will look a little bit advanced

but it's going to make more sense when

we get to the video on string functions

type the name of the variable followed

by a set of straight brackets

type str len this gets the length

subtract one and we will set the sequel

to backslash zero that will get rid of

the new line character so again this is

a little bit advanced for us but it'll

make more sense in future videos when we

get to the video on string functions and

let's try this one last time

what's your name

type in a first name and a last name hit

enter how old are you 21.

hello bro code how are you you are 21

years old if you need to accept a string

from a user that includes white spaces

like a first name and a last name you'll

want to use fgets in place of scanf

because scanf can't read those white

spaces it stops right there but it will

include that new line character when you

hit enter

so you can do some string formatting

just to get rid of that new line

character and like i said this statement

here will make more sense when we reach


the video on string functions but yeah

basically that's how you can accept user

input you can use the scanf function if

you need to accept a string of

characters that includes white spaces

you'll want to use fgets instead so yeah

that's how to accept user input and see

if you found this video helpful please

be sure to smash that like button leave

a random comment down below and

subscribe if you'd like to become a

fellow bro

hey what's going on everybody so in this

video i'm gonna show you some useful

math functions in c now if we include

this math header file this contains a

lot of the useful functions i'm about to

show you one useful function is the

square root function let's say that we

have a bunch of variables we declared

them but we have not yet assigned them i

will assign a the square root of nine so

after including this math header file i

have access to a square root function

so type sqrt then add a set of

parentheses and within the parentheses

we can find the square root of a number

let's find what the square root of nine

is and then display it with a printf

statement

so the square root of nine is three so

let's move on we can raise a base to a

given power by using the pow function

the first number is the base let's raise

two to the power of four and then


display it

two to the power of four is 16. we can

round a number and i will store this

within an integer

let's round

3.14

oh and then make sure you use the

appropriate format specifier for ins

3.14 rounded is 3.

now by using the seal short for ceiling

function we can always round a number up

3.14 rounded up is 4.

likewise there's a floor function where

we will always round down

3.99 rounded down

is

3. we can find the absolute value of a

number that's how far a number is away

from zero

so it will take any negative numbers and

make them positive the absolute value of

negative 100

and that would be positive 100 if you're

familiar with logarithms we can find the

logarithm of a number

log 3

is

1.098612

and if you know some trigonometry

there's various functions for sine

cosine

and tangent

so what's the tangent of 45

that is supposedly this number


1.619775 so yeah everybody those are a

few math functions that you might be

interested in to use these just include

this header file at the top math.h if

you found this video helpful please be

sure to smash that like button leave a

random comment down below and subscribe

if you'd like to become a fellow bro

hey everyone here's a quick program that

we can make to calculate the

circumference of a circle i thought this

would be good practice for us now that

we know how user input works let's

declare all of the variables that we'll

need i'm going to create a constant

variable named pi and it's going to be

of the double data type pi equals

3.14159

the reason that i'm making this a

constant is that i don't want anybody

else to be able to change the value of

pi and let's declare but not assign a

radius quite yet we'll have the user

type that in

and double circumference

this will be calculated and displayed so

we will need to prompt the user to enter

in a radius i'll proceed this with a new

line

enter

radius

of a circle and then i will use scanf to

accept some user input we need to list

the format specifier of doubles which is

lf comma address of operator


radius

then the formula for radius is 2 times

pi times radius and then we will display

our circumference using printf

circumference

then we need a format specifier we're

displaying a double so the format

specifier is lf

comma circumference

and let's run it

enter well the radius of a circle

uh let's say that our radius is 10 maybe

this is 10 i don't know meters

all right our circumference is

62.83 meters now why not take this a

step further let's also calculate the

area of the circle i wasn't planning on

taking it this far but hey let's

calculate that as well for practice so

let's declare a double variable named

area

and we will calculate what area is the

formula for the area of the circle is

pi times radius squared

pi times radius times radius

then let's display the area

so area

we're using the double format specifier

and area then let's add some new line

characters to separate everything

enter the radius of a circle let's say

10 meters

the circumference is

62.83 meters and the area is 314


meters all right everybody that is a

small program to calculate the

circumference of a circle and i guess

the area as well just because well why

not so yeah if you found this video

helpful please be sure to smash that

like button leave a random comment down

below and subscribe if you'd like to

become a fellow bro

alright welcome back everybody in this

video we're going to write a small

practice program to find the hypotenuse

of a right triangle we'll need the help

of our math.h header file because we'll

need access to some useful math

functions more specifically the square

root function let's declare all of the

variables that we'll need we'll need

sides a b and c and these will be of the

double data type

we'll ask the user to enter in sides a

and b

print f

enter

side

a and then we will use scanf

so the format specifier for a double

is l f then i would like to insert a

value within a so i need to use the

address of operator then our variable a

okay let's do the same thing for side b

enter side b and store the user input


within variable b the formula to find

the hypotenuse of a right triangle is

the square root of a squared plus b

squared

so we will set c

equal to the square root function

and within the parentheses we will say a

times a

plus b times b

and then we will display c

side

and the format specifier for a double is

l f and we are displaying c and well

let's try it

so side a let's say is three side b is

four

that means side c is five so yeah i

thought that would be a good practice

program for us to get used to accepting

user input if this video helped you out

help me out by smashing that like button

leave a random comment down below and

subscribe if you'd like to become a

fellow bro

hey let's talk about if statements if

statements are used to add some choices

to a program let's take the small

program for example we have a variable

edge and we'll ask a user to enter in

their edge what if i would like to check

their edge maybe they're signing up for

a credit card or something so to check

some value we can write an if statement


if parentheses then a set of curly

braces if some condition that we specify

is true we will execute some block of

code some subsection of code what sort

of condition should we write let's check

to see if age is greater than or equal

to 18. so there's different comparison

operators there's greater than or equal

to

greater than less than less than or

equal to

or you could check to see if two values

are equal by using double equal signs

this is the comparison operator if you

use just one this is the assignment

operator and this would be the same as

assigning age equal to 18 so if you need

to compare if two values are equal use

the comparison operator which is double

equal signs but what i would like to do

is check to see if age is greater than

or equal to 18. if this condition

evaluates to be true we will have our

program do something

so let's print a message

since we're signing up for a credit card

let's say you are now signed up

and let's run it

end to your age let's say that i'm 21 i

hit enter boom you are now signed up but

what if this condition is false let's

say that i'm 12 years old and i'm

attempting to sign up for a credit card

well we skip this if statement if this

condition evaluates to be false we will


skip this block of code and continue on

with the rest of the program ignoring it

or we could do something else by using

an else statement if this condition is

false we will skip this subset of code

and instead perform this let's print a

different message instead

you are too young to sign up

and let's try that again

and to your edge i am 12.

you are too young to sign up you can

check more than one condition before

reaching your else statement by using

else if blocks and that is by using else

if statements we can check another

statement before reaching our else

statement

so let's check to see if age is less

than zero so obviously somebody's

messing with this program then because

you can't be under zero years old right

you haven't been

born yet

so after running this program if i say

that i'm negative

six

you haven't been born yet so we will

check our if statement first if this

condition is false we will move down to

the next block and then check this else

if condition if all above statements

evaluate to be false we will execute

this else block as a last resort so to

say and with these else if blocks you


can add more than one let's check

something else

just to demonstrate

else if

what about age is equal to zero

and we will print

you can't sign up

you were just born

and to your age i am zero years old

you can't sign up you were just born if

one of these conditions evaluates to be

true we will skip all of these

statements that come after then with our

else block if all above statements

evaluate to be false we definitely

execute whatever's within here

so yeah those are if statements they add

some choice to a program you can check

to see if some condition is true if not

you can check something else using else

if statements you can perform whatever

is within an else block and that's

optional so yeah those are if statements

and see if you found this video helpful

please be sure to help me out by

smashing that like button leave a random

comment down below and subscribe if

you'd like to become a fellow bro

all right welcome back people switches a

switch is a more efficient alternative

to using many else if statements it

allows a value to be tested for equality

against many cases here's an example of

where a switch would be useful i have a

small program we will tell a user to


enter in a letter grade and depending on

their grade we will print a custom

message

if grade equals a will print perfect

else if grade equals b will print a

different message so on and so forth so

it's considered bad practice to use a

lot of else if statements a better

alternative is to use a switch here's

how we can create one type switch

parentheses

curly braces whatever value you would

like to examine for equality placed

within the parentheses i would like to

examine my grade and now we need to

write some cases

case

and then some value you would like to

test for equality

so i am comparing characters i will

write the character a

colon

then if these values match we will

execute some subset of code kind of like

an if statement

let's print

perfect

and then add a break afterwards

then you can add another case

so case b

you did good

casey

you did

okay
case d

at least it's not an f

case f

you failed

now you can add a default case this

functions like an else statement if no

other cases match we will execute

whatever's within our default case

so that means there are no matching

letter grades

so let's print

please enter only valid grades

and let's test it

enter a letter grade a

this will print perfect whatever's

within our matching case

let's try it again

b you did good

see you did okay

d at least it's not enough

f you failed

and if there are no matching cases we

will execute our default case uh how

about w for win

please enter only valid grades the

reason that we add breaks after each

case is so we can break out of our

switch and exit let me show you what

this looks like if we do not have any

breaks

now let's say that we have a c letter

grade

you did okay at least it's not enough

you failed please enter only valid

grades
so the reason that we have breaks is to

exit out of our switch if we have a

matching case and there are no breaks we

will continue executing each case that

comes after so it is important to have

those breaks if you want to exit out of

your switch well yeah that's a switch

everybody it's a more efficient

alternative to using many else if

statements using a few elsif statements

is okay but it's considered poor

practice to use a lot of them so yeah

those are switches if this video helped

you out you can help me out by smashing

that like button leave a random comment

down below and subscribe if you'd like

to become a fellow bro

hey uh everybody it's bro hope you're

doing well and in this video we're going

to create a small program where the user

will type in a temperature and we can

convert that temperature from fahrenheit

to celsius or celsius to fahrenheit so

sit back relax and enjoy the show

now before we begin this video make sure

that you include these two imports at

the top we'll be working with string

functions and many of them can be found

within this import see type dot h so

let's declare the variables that we'll

need

char unit unit will be either c for

celsius or f for fahrenheit and float

temp short for temperature


let's prompt the user to enter in some

user input

printf is the

temperature

in

or

and then we will accept some user input

so we will be accepting a character so

use the appropriate format specifier for

characters

and we will use the address of operator

which is an ampersand

unit

and then let's use an if statement to

check to see

if unit

is equal to the character c

else if

unit is equal to f

we will use the formula to convert

fahrenheit to celsius if it's c celsius

to fahrenheit and we should probably add

an else statement as well

okay let's actually test these right

now okay this will only be temporary i'm

going to print a message

the temp is currently

in celsius

and with fahrenheit the temperature is

currently in fahrenheit

so if the user did not type in c or f

well then what the heck did they type in

so within our else statement let's yell


at the user let's say that whatever they

entered in is not valid input

so format specifier c

is not a valid unit of measurement

and then we will display whatever the

user typed into our unit variable

so let's test this is the temperature in

f or c

so f

the temp is currently in f

let's try it again

is the temperature in f or c see

the temp is currently in c

okay this time we will not type in f4c

how about the word pizza this only

accepts the first character

p is not a valid unit of measurement

here's one situation that we may run

into c programs are case sensitive if i

type in lowercase f or lowercase c well

technically neither of these conditions

would be true for example if i type

lowercase t

c is not a valid unit of measurement to

avoid that problem i can take my user

input and use the two upper function to

make it uppercase or you could set these

conditions to check for lowercase

characters instead and use the two lower

function

so let's take our unit variable and i'm

going to reassign it after using the to

upper function and then pass in our unit

to make it uppercase and now if i type


in lowercase c or lowercase f

this user input will be made uppercase

the temp is currently in c

so this is optional but i thought it'd

be a good thing to add to this program

now what we'll work on next depending on

the unit there's going to be a different

formula a different calculation

now we will need the user to enter in

the current temperature so let's begin

with our if statement if unit is equal

to c celsius

enter the temp

in celsius

this time we are accepting a floating

point number

we will use scanf the format specifier

for floating point

numbers address of operator

temp

and then we need to calculate the new

temperature after it's converted from

celsius to fahrenheit and we will

reassign it into the same variable temp

temp equals and here's the formula

temp

times

9 divided by 5

plus 32

and then let's print the temperature

printf

the

temp

in

fahrenheit
is

and i'm going to use a format specifier

percent f but i would only like to

display one digit after the decimal so i

will add dot one

and then we will insert our temperature

temp okay let's try this enter the

temperature in f or c currently we only

have the celsius portion set up

so see

enter the temp in celsius

how about zero degrees celsius

the temp in fahrenheit is 32.0 okay so

we know that it's working

let's fill out our else if statement

else if unit is equal to f

and let's copy some of this

enter the temp in

fahrenheit

we will reassign our temperature

variable

temp equals

and here's the formula

temp minus 32

times 5

and we will divide all of this by 9.

[Music]

then let's display the temperature in

celsius

the temp

in celsius is

our format specifier then the temp

variable is the temperature in f or c

this time it is in fahrenheit


enter the temp in fahrenheit so 32

degrees in fahrenheit should translate

to zero degrees celsius

which it is

so yeah everybody i thought that would

be a useful practice program for us to

get used to accepting user input

i'll post all of this code from this

program in the comments section down

below if you would like a copy

so if you found this video helpful you

can help me out by smashing that like

button leave random comments down below

and subscribe if you'd like to become a

fellow bro

hey yeah what's going on everybody i

thought in this video we could create a

simple calculator program in c for

practice let's begin by declaring all of

the different variables that we'll need

we'll need a character to store an

operator

so are we going to add subtract multiply

or divide

we'll need double num1

double num2

and double result

let's ask the user what type of

operation they would like to use

enter an operator

so we can use addition subtraction

multiplication or division

and we will use scanf to accept some

user input if we're accepting a

character the format specifier is c


and we will use the address of operator

the name of our variable we would like

to store some user input into

then let's accept num1

enter

number one

then scanf

the format specifier for a double

is lf

num1

okay do the same thing with number

two replace one with two

then to examine our operator let's use a

switch

switch

and we will examine our operator for any

matching cases let's add a default case

because i might forget to add this later

so if a user does not enter in anything

that has a matching case one of these

four symbols

let's print a message

let's say that our operator is not valid

our first case will be edition so case

addition

result

equals num1 plus num2 and let's display

our result

result

and the format specifier for a double is

lf

and then at the end of your case you

should break to break out of the switch

then we can copy this


paste it

and then change any plus to minus

then do the same thing with

multiplication

and lastly division

and that is it so let's try this

enter an operator i would like to add

enter number one 4.20 plus

3.14

that is

7.34 and you can limit the amount of

digits after the decimal that is

displayed if you would like to adjust

that with the format specifier with

result type dot than the amount of

digits you would like to display so i'm

just going to go ahead and change that

real quick

okay so by adding 0.2 to our format

specifier this will only display it two

digits after the decimal but you can

keep it the original way if you'd like

okay let's subtract so minus

4.20 minus 3.14

is

1.06 okay multiplication

3.14 times 4.20

is 13.19

and lastly division

3.14

divided by 4.20

is

0.75

and we do have a default case if there

are no matching cases


let's type in a character besides one of

these four symbols how about

i don't know a dollar sign

unfortunately we still need to enter

into numbers and then this states our

operator is not valid

so yeah everybody that is a very simple

calculator program in c

if you would like a copy of all this

code i'll post a copy in the comment

section down below so this calculator

can add subtract multiply and divide

there are four cases but you can expand

upon this if you'd like so yeah

everybody that was a very simple

calculator program in c

hey yeah what's going on people logical

operators there are three logical

operators we will discuss in the series

and or

and not but in this video we're going to

focus on and first the and logical

operator which is represented by two

ampersands checks to see if two or more

conditions are true here's an example

we're going to create a program that

will check to see if a given temperature

falls within a range so let's say we

have a floating point number named temp

temp short for temperature and this will

equal some number in celsius let's say

25 to begin with so using an if

statement let's check to see if temp

is greater than or equal to zero


if that is true then we will print

something

the weather is good

else

the weather is

bad okay so temp is 25 therefore the

weather is good

okay what if our temperature is

something extreme like 1000 degrees

celsius so technically this condition

would still be true the weather is

actually not good it's fairly

catastrophic so let's check to see if

another condition is also true by using

the and logical operator we're checking

to see if temp is greater than or equal

to 0 and some other condition such as

temp

is less than or equal to 30.

so if temp is at 1000

then the weather is bad this condition

is true but this one is false using the

and logical operator both conditions

must be true in order to execute this

statement now if our temperature was 25

degrees well then both conditions are

true and we will execute this statement

the weather is good

now you can add more than one condition

let's throw in another variable let's

say that we have a boolean variable

named sunny let's say that it's cloudy

outside now if we're working with

booleans include this header file at the

top stdbool.h
then let's add another condition

and let's check to see if sunny

is equal to true if you're checking the

value of a boolean variable you don't

necessarily have to type out equals true

you can say

sunny is equal to one or you can just

say sunny because this would contain

true or false so this time we are

checking to see if temp is greater than

or equal to zero

and temp is less than or equal to 30 and

sunny is true the temp is 25 but sunny

equals false therefore we do not execute

this statement

these first two conditions are true but

this one is false and using the and

logical operator all conditions must be

true

now if i set this to be true

well then all three of these conditions

are true and we will execute this

statement the weather is good so yeah

that is the and logical operator it is

represented by two ampersands it checks

to see if two or more conditions are

true and one example we used is to check

to see if our temperature falls within a

certain range so yeah that is the and

logical operator in the next video we

will discuss the or logical operator so

if this video helped you out you can

help me out by smashing that like button

leave a random comment down below and


subscribe if you'd like to become a

fellow bro

hey again it's me so we're gonna talk

about the or logical operator the or

logical operator which is represented by

two vertical bars checks if at least one

condition is true let's take the small

program for example it's kind of similar

to the last video so we have a variable

named temperature for temperature we

will first check if temp is less than or

equal to zero if that's true we will

print the weather is bad

else if temp is greater than or equal to

30 the weather is bad else the weather

is good so you know this program does

work the weather is good but another way

of writing this is that we can use the

or logical operator and we can check to

see if at least one of two or more

conditions is true so let's take this

condition

get rid of this else if statement

so we will check to see if temp is less

than or equal to zero

or temp is greater than or equal to 30.

so if our temperature is negative 1000

degrees celsius then the weather is bad

this is true but this is false and using

the or logical

only one of these conditions needs to be

true if both are true that's fine as

well or our temperature could be

positive 1000 degrees celsius the

weather is also bad this is false and


this is true and only one of these

conditions needs to be true but if our

temperature is 25 well neither of these

conditions are true at least one

condition needs to be true in order to

execute the statement so yeah that is

the or logical operator it checks to see

if at least one condition is true and

you can check more than one condition by

adding another set of vertical bars for

the ore operator so if you found this

video helpful please be sure to help me

out by smashing that like button leave

her in a comment down below and

subscribe if you'd like to become a

fellow bro

hey yeah let's discuss the notch logical

operator which is represented by an

exclamation point its purpose is to

reverse the state of a condition let's

write a small program let's say that we

have a boolean variable named sunny and

this will be either true or false let's

say it's true to begin with so to work

with boolean variables include this

header file at the top and we will write

an if-else statement to check to see if

it's sunny outside and print a custom

message

so if sunny

is equal to true

then we will print

it's sunny outside else it must be

cloudy outside
so this does work it's sunny outside

another way of writing this is that we

could say sunny is equal to one because

true represents one false represents

zero this would also work or you could

just say sunny this would work as well

so by using the not logical operator

this will reverse the state of condition

by using the not logical operator we're

checking to see if something is not true

so if i try this again

this program states it's cloudy outside

so i think it would be better if we were

to switch these print statements around

now what we're checking is if it's not

sunny if it's not sunny then we will

print it's cloudy outside

else it's sunny outside

it is sunny outside and if i change this

to be false

well then

it's cloudy outside so yeah that's the

not logical operator you can just

precede a condition or a boolean

variable with the not logical operator

and that gives you a few more options in

the way in which you can write a program

so yeah that is the not logical operator

if you found this video helpful you can

help me out by smashing that like button

leave random comments down below and

subscribe if you'd like to become a

fellow bro

hey yeah what's going on let's talk

about functions a function is a small


section of code that is executed

whenever we call it also known as

invoking a function when we compile and

run a c program we begin with invoking

the main function so here's our task we

need to sing three verses of happy

birthday for some reason if we are only

using the main function we could write

it like this

this will be the first verse of happy

birthday and if i need to sing three

verses i could just copy and paste this

one section

and then paste it two additional times

then i'm just going to add a new line

character at the end

technically this would work but it's

considered poor practice to repeat code

more than once if you don't have to

wouldn't it be better if we write this

code once and then simply reuse it well

we can by using a function so let's

delete two of these verses

and we will create a new function so

outside of the main function let's

declare a new function so for now we're

going to type void and then a unique

name for this function let's say that

it's the birthday function followed by a

set of parentheses and then a set of

curly braces so i'm going to take any

code i would like to repeat and place it

within this new birthday function and if

i need to invoke this function all i


have to do is type the name of the

function followed by a set of

parentheses i like to think of the

parentheses as a pair of telephones

talking to each other that's one trick i

used to remember that's how to call a

function so follow the function name

with the set of parentheses and when i

invoke this function once we will

execute any code within this function

once if i need to repeat this code three

times i will just have to call this

function three times

we are calling our birthday function

three times

and there we go we have invoked this

birthday function three times and we

have accomplished our goal of singing

three verses of happy birthday so

basically that's all what a function is

it's some subsection of code that is

executed whenever you invoke it also

known as calling a function a benefit to

using functions is that if you think

you're going to use some code more than

once you can stick it within a function

and then to repeat that code you just

call the function as many times as you

need so yeah those are functions if you

would like a copy of this code i will

post this to the comments section down

below and in the next video we will

discuss arguments and parameters so yeah

that's the basics of functions in c

hey yeah what's going on people so let's


talk about arguments and parameters i

have a function named birthday which we

discussed in the previous video this

will print two lines of text happy

birthday dear x you are y years old what

i would like to do is replace x with a

user's name and y with a user's age so

here's how we can write a program like

that so let's begin by within the main

function declaring two variables a

character array named name

and assign this your first name and an

age and this will be of the int data

type and let's say that this will be age

and make up some age i like to think

that i'm still 21 years old okay so if i

try and display a name and age you think

this would work right so i'm going to

use a format specifier then s to display

a string and then i will display our

name variable and with y let's display

our age so let's use d for our format

specifier to display an integer and we

will display age now here's the problem

you can see that we have some red

underlines name is undeclared as well as

age here's the deal functions can't see

inside of other functions our birthday

function is unaware of our name and age

variables one way in which we can make

our birthday function aware of these is

to pass them as arguments when we invoke

the birthday function so based on the

last topic on functions i mentioned that


when we call a function we type the

function's name followed by a set of

parentheses i like to imagine the set of

parentheses as a pair of telephones and

these two functions are talking to each

other our main function needs to make

our birthday function aware of our name

and age variables so what we can do is

pass these variables as arguments so

between the parentheses we can add our

variables separated with a comma so

let's pass name and age so anything that

you're passing to a function are known

as arguments but we need a matching set

of parameters within the function

declaration so between this set of

parentheses we will list our name and

age variables but precede each with the

data type that we're working with so we

have name and age so age

is an integer so precede the variable

name with int and name is a character

array so we're going to precede name

with char

and then add a set of straight brackets

after so these are parameters parameters

are what this function needs in order to

be executed so this does work happy

birthday dear bro you are 21 years old

so with parameter setup you can only

call this function if you pass a

character array as well as an integer if

i were to remove these arguments we can

no longer call this birthday function

error too few arguments to function


birthday so when you call a function you

can pass some arguments but you need a

matching set of parameters and the names

of these parameters don't necessarily

have to be the same what's important is

the order of the arguments and the data

type so let's say name is x and age is y

so let's replace that here as well

and that would work too so yeah those

are arguments and parameters arguments

are what you're sending a function

parameters are what a function expects

when it's invoked and the benefits of

arguments and parameters is that these

functions can talk to each other because

functions can't see inside of one

another so if you have some variables

within a function you can pass them to

another function as arguments so yeah

those are arguments and parameters if

you would like a copy of this code i

will post this in the comments section

down below and well yeah those are

arguments and parameters in c

hey what's going on people so the return

statement the return statement returns a

value back to a calling function here's

an example i have a function named

square square is going to accept one

argument a double it's going to square

that double and return the result back

to the calling function so here's an

example let's say we have double x and

i'm going to call the square function


and then pass in some value

let's say 3.14

so when we call a function we can also

return a value back to the spot in which

we call a function so within our square

function let's set double result equal

to x times x effectively squaring it so

to return a value back to the calling

function we will use this return keyword

followed by some value or variable i

would like to return result however we

need to list the data type of what we're

returning within the function

declaration right now it's void so if

we're returning a double we will list

double here if this was an integer we

would return int

if it was a character we would return

char you kind of get the idea so result

is a double so we need to change this

from void to double and we will return

this result back to the calling function

so we're effectively stating that double

x equals 3.14 squared and then let's

print the result

so printf

the format specifier for a double is lf

and we will print x

and 3.14 squared is 9.859

now you could shorten this too we could

just say return x times x

instead of declaring a local variable

return x times x

and that would work the same so yeah

that's basically the return statement


you can place it within a function and

return a value or variable back to the

calling function

and the spot in which you invoked that

function but if you're going to return a

value or variable within the function

declaration you need to change void to

the data type of what you're returning

so yeah that is the return statement and

you may have noticed within our main

function we're returning zero zero is

the exit status if this program runs

successfully so instead of void with our

main function declaration we have int

because zero is technically an integer

so yeah that's the return statement if

you would like a copy of this code i

will post this to the comments section

down below well yeah that's the return

statement in c

hey sup people the trinary operator also

known as the conditional operator it's a

shortcut to using an if-else statement

when assigning or returning a value

here's the formula we write a condition

followed by a question mark if this

condition is true we return some value

if true or if that condition is false we

return some other value here's an

example first we'll use an if-else

statement and then later we'll switch to

the ternary operator so let's create a

function that will find the maximum of

two integers and i'm going to assign


that to int max

and we will invoke a function find max

but we'll still need to declare it so

let's pass in two integers maybe three

and four

and then i'm going to display whatever

max is

okay so let's declare this function so

we're returning an integer

the name is find max and let's set up

some parameters into x and int y so if

we're using an if else statement if we

need to return x if it's larger we can

check to see if

x is larger than y

if so then return x

else

return

y so this does work

so the max between three and four

is four

so if i switch three to five

well then the max is five so a shortcut

to writing an if else statement like

this if we're returning or assigning a

value is that we could instead use the

tenary operator so let's return and then

we have a condition

so this is our condition

is x greater than y then we add a

question mark

then the value we're returning if true

so if x is greater than y let's return x

colon then our value if this condition

is false and here within our else


statement we're returning y

and we no longer need this if else

statement and that's all there is to it

so we cut down on all that code and now

just have one line of code so it's kind

of like a shortcut and this works much

the same so the maximum between five and

four is five and if i change five back

to three well then the max is for so

yeah that's the ternary operator it's a

shortcut to using an if else statement

when assigning or returning a value you

write some condition add a question mark

like you're asking a question then list

some value to return if this condition

is true and then some other value if

this condition is false so you just

follow this formula so yeah that's the

trenary operator if you would like a

copy of this code i'll post this to the

comments section down below and well

yeah that's the canary operator nc

hey everybody so let's discuss function

prototypes a function prototype is a

functional declaration without a body

before we declare the main function it

ensures that calls to a function are

made with the correct number and type of

arguments it has some benefits which

we'll discuss later basically this is

another way in which we can declare and

define functions in the last few topics

when we were declaring functions we were

doing so before the main function so


let's say void and we have a function

named hello and there will be two

arguments and ray of characters named

name and int age and what i would like

this function to do is print a message

using our name and age

so hello name

you are age years old so what we're

going to do is now move this function

from before the main function to after

the main function and let's declare some

name and age variables so char name

use your first name and int age make up

some age now i'm going to invoke my

hello function

but pass in an incorrect number of

arguments now here's one of the benefits

of a function of prototype it's going to

ensure that we have the correct number

of arguments when we invoke a function

so the correct arguments for our hello

function are an array of characters and

an integer what if i'm missing one of

these arguments let's say we only pass

in a name

and then invoke this function

so this is going to result in unexpected

behavior

and we do have a warning here

conflicting types for hello but this

program will still compile and execute

so here's the result hello bro you are

million five hundred twelve thousand

three hundred and fifty two years old

and if i run this again this will


probably be a different number so this

will result in unexpected behavior we're

not ensuring that calls to a function

are made with the correct arguments one

way in which we can do that is to add a

function prototype before the main

function and to add a function prototype

to a given function we will declare that

function but not give it a body before

the main function and then we will later

add a body and define what this function

is going to do so before the main

function we will type the return type of

this function

void

the name of the function

hello and then add the data type and the

order of arguments so we have a

character array

and an integer then end it with a

semicolon so this is a function

prototype

it ensures that calls to a function are

made with the correct arguments so now

if i attempt to call the hello function

with only one argument when two are

required instead of a warning we'll

receive an error and it states that

there are too few arguments to function

hello so this program will not compile

and run successfully which is what we

want because we made a mistake and if i

were to add the correct arguments now

well then this program is going to


compile and run fine

so here's some important notes regarding

function prototypes many c compilers do

not check for parameter matching that's

why this program was still able to

compile and run without a function

prototype even though we were missing

arguments and that can result in

unexpected and unwanted behavior such as

saying that i was over a million years

old so a function of prototype causes

the compiler to flag an error if

arguments are missing

you can write the functions before the

main function that's okay too but a few

advantages of using a function prototype

is that it's easier to navigate a

program when the main function is at the

top of your file it also helps with

debugging and it's commonly used in

header files which is something we need

to discuss in a future topic so yeah

that's basically a function prototype

we're going to define any functions

after the main function now and before

the main function we will declare a

function prototype one function

prototype for each function we have

besides the main function and this

ensures that we have the correct number

and type of arguments which will prevent

any unexpected behavior it's basically

just another way to declare functions

that you may run into in the future so

yeah those are function prototypes if


you would like a copy of this code i

will post this to the comment section

down below and well yeah those are

function of prototypes in c

hey everybody so now that we know how

functions work i thought this would be a

good opportunity for us to learn about

some useful string functions so there's

a lot of string functions that are

already written for us just include this

header file at the top include string

dot h so create two strings one named

string one and the other named string

two string one will be your first name

string two will be your last name and

then at the end of this program i am

just printing string one using a printf

statement so let's begin the first

useful string function is string lower

so whatever string you pass in as an

argument this function will convert a

string to lowercase so the first letter

in my name is uppercase it's capitalized

so after passing in string1 into this

function

my name is all now lowercase

otherwise there's string upper that will

convert a string to uppercase

and my name is uppercase

stringcat will concatenate as in append

string2 to the end of string1 so we will

append the second argument to the first

argument so if i pass in string one then

string two this will append my last name


to my first name and these strings are

now combined or i could append a given

amount of characters from string two to

string one so the third argument is a

number if i append one character from

string two to string one then this will

take the c from my last name and append

it to the end of my first name so that

is the string and cat function

there's also string copy and this one is

actually fairly common

so this will copy string two to string

one if i print string one well it now

displays code instead of bro this will

remove the contents from string one and

replace them with string two or you

could copy a given amount of characters

from string two to string one uh let's

say that i'm going to copy the first

character over so i'm copying the first

character from my last name to my first

name

and my first name is now crow or i could

set this to two

and this will copy the first two letters

over

coo all right here's a few more so

string set will set all characters of a

string to a given character i'm going to

set all of the characters from string 1

to a question mark all of the characters

within my name are all question marks

and string and set will set the first

and characters of a string to a given

character so i'm going to set the first


character of my first name to an x

so my name is now x bro and string

reverse will reverse a string so if i

reverse string one

my first name is now orb so this next

set of functions will return an integer

so i'm going to declare a variable int

result and this function is really

common string length this returns the

string length as an integer

if i pass in string one this string has

a length of three characters and then

i'm going to print my result and this is

an integer

so the length of my first name

is three characters this is a fairly

common function

the string compare function will compare

all of the characters within two strings

if they're the same they will return

zero if they're different they will

return a number beside zero so here's an

if statement

if result is equal to zero we will print

these strings are the same else these

strings are not the same

so my first name is not equal to my last

name these characters are different so

this code will print

these strings are not the same and let

me get rid of that printf statement

okay now if i make the strings the same

then result is going to be zero

these strings are the same and you can


compare a given amount of characters too

so currently i have these strings set to

be the same characters so this will

compare only the first character

these strings are the same even if i

change the other characters the first

characters will still be the same

so this function will return zero there

are two additional versions of string

compare and string and compare they are

string compare i and string n i compare

so these will do the exact same things

except they ignore case sensitivity so

yeah everybody those are just a few

useful string functions there's still a

lot more located within this header file

but we would need to understand how

things like pointers work which we have

not discussed yet but i thought i would

at least cover some of the basics so

yeah those are a few useful string

functions in c if you would like a copy

of all these notes i'll post them to the

comment section down below and well yeah

those are a few useful string functions

in c

hey yeah welcome back so we have to talk

about for loops a for loop repeats a

section of code a limited amount of

times here's an example let's say that

we would like to count the numbers 1

through 10. so we can actually write a

for loop to do that for us and here's

how to create one type four

a set of parentheses then a set of curly


braces anything within this set of curly

braces we can repeat a limited amount of

times but before we do so there's a few

statements we have to add to our for

loop there are three the first is that

we need some sort of counter or index

and we can actually declare that within

the for loop so we will declare an index

int

index and set the sql to some number

let's say one so we will start at one

and count to ten and then finish the

statement with a semicolon now a common

convention is that a lot of people will

shorten index to i because it's easier

to work with so this is the first

statement there's two more and the

second statement is a condition how long

should we continue repeating this code

so let's continue this for loop as long

as i our index is less than or equal to

10 and then add a semicolon at the end

so that is the second statement and the

third statement is that we can increment

or decrement our counter

so let's take i and increment it by one

after each iteration by using i plus

plus so let's just test this so printf

i'll just print the word test

so this should print the word test ten

times

uh then we should add a new line

character at the end

that's much better okay now let's


replace test with a format specifier

we're displaying an integer

and let's display i our index and this

should count from one to ten

yep just like that one through ten so

with this third statement we can

increment or decrement by one or a

greater number so this time let's count

by two so we can set this to i plus

equals two and we will now count up by

two starting from one one three five

seven nine

or how about three

one four seven ten you can also

decrement this time let's count from ten

to one so let's set i to equal 10

and we will continue this as long as i

is greater than or equal to 1

and we will decrement i minus minus

so this will count from 10 to 1 and then

stop or we could count down by two

i minus equals two

then we have ten eight six four two

or even three or a greater number

so yeah that's a for loop it repeats a

section of code a limited amount of

times there's up to three statements

that we can add we can declare an index

a counter so to say some condition that

we check after each iteration and then

some way to increment or decrement our

index and then place any code you would

like to repeat within a set of curly

braces so yeah that's a for loop if you

would like a copy of this code i will


post this to the comment section down

below and well yeah those are for loops

in c

all right we're back at it again so

let's talk about while loops a while

loop will repeat a section of code

possibly unlimited times we will

continue some section of code while some

condition remains true and it's possible

that a while loop might not execute at

all depending on what our condition is

so here's an example let's create a

program that will ask a user for their

name if they attempt to skip that prompt

then we will keep on asking them for

their name indefinitely so here's how we

can write a program like that using a

while loop we'll need to begin with a

character array let's say name and this

will be 25 bytes and we will create a

prompt using printf

what's your name we can use scanf for

user input but with names that may

contain spaces i'm going to use fgets

instead

refer to the video on user input to

learn more about fgets so i would like

to assign my variable name

set the size of the user input 25 to

match what we have

then type stdn for standard input then

we just need to get rid of the new line

character at the end of our user input

so we can write something like this


set our character array of name and

within the straight brackets we will use

the string length function

pass in name

-1

and we will set this equal to a null

character and then at the end we will

display the user's name printf

let's say hello and then use a format

specifier for strings which is s and we

will display a user's name

okay this is what this looks like

currently

what's your name i'll type my name hit

enter

and it says hello bro now what if i

don't type in anything like i just hit

enter

what's your name i'm going to hit enter

hello and then there is no name here how

can i force a user to type in something

well i could use a while loop and that

will prompt a user to enter their name

indefinitely so here's how to create a

while loop type while parentheses

curly braces and we need a condition

what are we going to check we will

continue this while loop while some

condition remains true

our condition to check to see if we have

an empty string

we could use the string length function

pass in name and check to see if this is

equal to zero

if it is zero that means that somebody


just hit enter without typing in

anything so let's print a message to

yell at them

you

did not enter your name

and then let's copy this section of code

and paste it to reprompt the user to

type in their name

and that's all there is to it so while

this condition remains true we will

execute this code forever so let's try

it again

okay what's your name i'm going to hit

enter you did not enter your name what's

your name no no no no

okay i give up

hello whatever your name is so yeah

that's basically a while loop it repeats

a section of code possibly unlimited

times there's a lot of overlap where you

could use either a for loop or a while

loop and we execute some body of code

while some condition remains true

however a while loop might not execute

at all if this condition is false to

begin with so if the user actually does

type in something well this condition is

false and we do not execute this body of

code so yeah that's a while loop it

repeats a section of code possibly

unlimited times if you would like a copy

of this code i will post this to the

comment section down below and well yeah

those are while loops in c


hey everybody so let's talk about do

while loops a do while loop is a

variation of a while loop so a while

loop first checks a condition

then it executes a block of code if that

condition is true so we may not even

execute that block of code at all if

that condition is false from the get go

a do while loop always executes a block

of code once and then we checking

condition at the end if that condition

is true we will continue another loop so

here's what i'm thinking for a

demonstration we'll create a small

program where we will have a user type

in as many numbers as they want as long

as it's above zero and then we will find

a sum so if we're writing a program like

that we can first declare two variables

int number i'll go ahead and assign

these some values right away so we'll

set number to zero and int sum equal to

zero as well to keep track of the sum

we'll first begin by creating a while

loop

so we will use a while loop

and our condition is if number

is greater than zero

then we will continue to ask the user to

type in some numbers

if that number is zero or less then we

stop so let's ask a user for a number

enter a number

above zero and then using scanf we will

accept some user input


and store this within number and let's

check to see if

number

is greater than zero

if it is we will take sum set this equal

to sum

plus number but you can just shorten the

statement to plus equals number that's

fine too and then at the end we will

print whatever the sum is

sum

we're displaying an integer

and we are displaying some so with our

number i set this to zero and since our

while loop is checking the condition

first we're not actually going to

execute this body of code

so our program skipped this while loop

and went straight to the printf

statement so a while loop checks a

condition first a do while loop will

check a condition last so to change this

to a do while loop we will take our

condition

and move it to the end

just after the last curly brace and add

a semicolon and then before the first

curly brace we will add the word do so

we will do this once and then check the

condition to see if we would like to

continue so now if i run this

we get that prompt enter a number above

zero and i can type in as many numbers

as i want so one two three four five so


we check the condition at the end

so our condition is that if our number

is greater than zero we will continue

this loop so if i type in negative one

we will exit

and our sum is 15. so that's the major

difference between a while loop and a do

while loop a while loop checks a

condition first then executes a block of

code if that condition is true a do

while loop always executes a block of

code once

then checks a condition if that

condition is true then we continue again

so yeah that's a do while loop it's a

variation of a while loop and if you

would like a copy of this code i'll post

this to the comments section down below

and well that's the do while loop in c

hey welcome back so nested loops a

nested loop is a loop inside of another

loop when you'll encounter them it's

really situational so i don't really

have one good example but what i'm

thinking we'll do is use a nested loop

for an exercise what i'm thinking is

that we'll let a user type in a number

of rows and columns and a symbol and

print a rectangle of that given symbol

but the user is going to specify a

number of rows and columns so let's

begin by declaring all of the different

variables that we'll need intros and

columns and char

symbol we'll let the user type in a


number of rows and columns

enter number of rows

then use scanf to accept some user input

we are accepting an integer so use d for

the format specifier address of operator

rows then do the same thing with columns

enter number of columns

let's create our nested loops you can

use either for loops or while loops it's

just the concept of one loop inside of

another so let's use for loops for our

outer loop and inner loop

the outer loop is in charge of keeping

track of the rows the inner loop will be

in charge of keeping track of the

columns so i need this outer for loop to

iterate once for every row that we have

so we could write something like this

int i set this equal to one i need to

continue this for loop as long as i is

less than or equal to rows

and then increment i by one after each

iteration so now let's create a nested

for loop we will declare a loop inside

of another loop

and this inner for loop is in charge of

the columns we should probably not reuse

our index of i so let's create a new

index and a common naming convention for

an inner for loop is to use j because j

comes after i in the alphabet

so i will set int j equal to one we will

continue this as long as j is less than

or equal to columns
then increment j by one for the time

being until we let a user type in a

symbol let's just print our index so

let's use printf

we're displaying an integer

and let's display j

and let's take a look at this

okay enter number of rows how about 3

rows and five columns

so here's our output we have the numbers

one through five three times

so to make this more of a rectangle a

grid i'm going to add a new line

character whenever we finish a row

so printf

newline character let's try that again

enter number of rows three number of

columns five

so we have three rows and five columns

basically speaking to complete one

iteration of our outer loop we have to

escape our inner loop first

once this condition is no longer true

then we will escape the inner loop and

complete one iteration of the outer for

loop but then once we begin in the next

iteration of our for loop we're stuck

back within our inner for loop again so

that's kind of the concept now this time

let's let a user type in a symbol and we

will create a sort of rectangle

enter a symbol to use then scanf we are

accepting a character so use the c

format specifier address of operator

our symbol variable


now we're going to replace j with our

symbol

and the format specifier for a character

is c

then let's try this again

so how about three rows and six columns

okay here's the issue so we have all of

this empty space

now when we entered our number of

columns after hitting enter we have the

new line character within our input

buffer so our next scana function

actually picked that up so what we need

to do is clear our buffer and one simple

way of doing that there's a couple

different ways is that we can just use

scanf again

and we will read a character and that's

one way to do it basically with this

line we're just getting rid of the new

line character after the last time we

use scanf because that's still within

our buffer okay let's try this one last

time what about four rows

and five columns enter a symbol to use

uh how about the dollar sign

there we go here's our rectangle it has

five columns and four rows so yeah

that's basically a nested loop it's a

loop inside of another loop and when

you'll encounter them it's really

situational i thought this would be good

practice to understand how they work to

complete one iteration of the outer loop


you have to first escape the inner loop

and that may involve completing all

iterations of the inner loop so yeah

those are nested loops if you would like

a copy of this code i will post this to

the comment section down below and well

yeah those are nested loops in c

hey people i have a super quick video

for you today on the differences between

the continue and break statements so

when using either statements within the

context of a loop a continue statement

will skip the rest of a section of code

and force the next iteration of a loop a

break statement will exit out of a loop

entirely another place where you see

break statements is when used within a

switch after each case so here's an

example let's say that we would like to

count the numbers 1 through 20 but i

would like to skip the number 13 because

13 is considered an unlucky number so if

i were to write a program like that that

would look something like this

so let's use a for loop and i will set

an index of i equal to one continue this

as long as i is less than or equal to 20

and then increment i by one then let's

print our index so printf we're

displaying an integer

and let's display i i'm just going to

add a new line character after each

iteration when we use a printf statement

okay so this is what this looks like we

have the numbers 1 through 20. so if i


would like to skip the number 13 i can

use a continue statement but we need to

check to see if i is equal to 13 we can

use an if statement

so

if i is equal to 13

then we will continue

and let's take a look so we have the

numbers 1 through 20 but we are missing

13 so a continue statement will skip the

rest of a section of code and force the

next iteration of a loop now if this was

a break statement this will break out of

our loop entirely so once we reach 13

then we will exit out of this loop

entirely so here we only have the

numbers 1 through 12 and then we break

we exit out of the loop so that's a

quick demonstration of the differences

between continue and break the continue

statement will skip the rest of a

section of code and force the next

iteration of a loop a break statement

exits out of a loop entirely so yeah

that's a super quick video on the

differences between the continue and

break statements if you would like a

copy of this code i'll post this to the

comments section down below and well

yeah those are the major differences

between the continue and break

statements in c

hey everybody let's talk about arrays an

array is a data structure that can store


many values of the same data type here's

an example let's say i have a variable

named price and i have the price of

maybe one item in a fictional store of

ours so by using an array we can

actually store more than one value but

it has to be of the same data type so i

can turn this variable price into an

array and i can do that by following the

name of the variable and add a set of

straight brackets and then any values i

would like to add to this array i will

surround with a set of curly braces and

there we go we have turned our variable

price into an array but i'm going to

change the name to prices because i

think it would be more descriptive

because we can store more than one value

now so we can add multiple values each

separated with a comma so let's say we

have another price that is 10

15

25 and maybe 20. now you may have

noticed some parallels when we create a

string it's really an array of

characters so if i need a name we would

say the data type is char

and we will create a name array followed

by a set of square brackets and i will

set this equal to some amount of

characters a string is really just an

array of individual characters and with

my name here i have three individual

elements three individual values now if

i need to access one of these values i


need to use an index number so let's

print one of these numbers

so printf

i'm going to use the format specifier

for a double and i'm going to list my

array name

prices then follow this with a set of

straight brackets then i need an index

number so each spot within an array is

known as an element so we have five

elements within our array and to access

one of these elements i need to list an

index number the first element has an

index number of zero because computers

always start with zero so if i display

prices at index zero

this contains the number five i'm

actually going to format this let's

display it two digits after the decimal

and i'll precede this number with a

dollar sign

much better all right so then if i

display prices at index one that is

technically our second number of ten

dollars

so prices at index two

is fifteen three

is twenty five

and four which is our last element

is twenty so arrays they have a fixed

size we can't change the size after we

compile and run our program another

thing that you can do too if you do not

know what values you would like to


initialize your array with you can

always just set a size let's say i would

like a size of five elements but then

i'll assign some values later

so later on in our program we can say

prices

at whatever index let's say index zero

i'm going to assign with five and i'll

do the same thing for the other elements

so prices at index one is maybe ten

prices at index two is fifteen

three will be twenty five

and 4 will be 20.

that's another way in which you can

initialize an array you can always set a

size and then add elements later another

option is that you could combine the two

we could set a size right away so maybe

prices will have a size of 10 and we can

right off the bat assign some values

right away so we have five elements that

are currently filled but then the other

five are empty so there's a few

different ways in which you can

initialize an array so yeah that's

basically an array it's a data structure

that can store many values of the same

data type initializing an array is much

like creating a variable except you will

add a set of straight brackets after and

then you can either add some values

right away or later on in your program

but you need to list an index number of

where you're placing a value within the

array and then to access a value within


your array you type the array name

followed by an index number kind of like

a parking spot number so yeah those are

arrays in the next video i'm going to

show you how we can iterate over the

elements in an array using a for loop if

you would like a copy of this code i

will post this to the comments section

down below and well yeah that's an

introduction to arrays in c

hey welcome back everybody in this video

i'm going to show you how we can loop

through and print the elements of an

array so i have an array of doubles

named prices and i just made up some

fictional prices to display one of these

elements i can use a printf statement i

will use the appropriate format

specifier for the elements displayed

within this array since this array

contains doubles i will use the format

specifier for a double then to access

one of these elements i will type the

name of my array followed by a set of

straight brackets then an index number

so the first element in an array is zero

because computers always start with zero

then if i need to display the other

elements well i would have to manually

type prices at index zero then one two

three four so on and so forth so this

does work if you have a couple elements

but what if you have hundreds this

method is not going to be practical a


better solution is that we could make a

for loop and this for loop will iterate

once and display each element of this

array so let's create a for loop for

parentheses curly braces and we'll need

an index int i i'll set this equal to

zero

then we'll need a condition for the time

being let's set i less than five but

later on we're going to replace five

with something else and i'll explain

that later and then we will increment i

by one so then during each iteration

let's use this print statement again

and make one change instead of setting

an index number let's use our index

instead then i'm just going to add a new

line character after each printf

statement

so here we go this for loop should

iterate five times

and it will display the elements within

our array

so we have 5 10 15 25 20. maybe i'll add

a couple extra things to this format

specifier let's display two digits and a

dollar sign

that's much better so this kind of

resembles maybe a receipt of some sort

like somebody just bought a bunch of

items okay now here's one situation what

if we add or remove elements from this

array let's say that a user purchases

one more item for thirty dollars now the

way that this for loop is written it's


not going to display this last element

because we set this for loop to iterate

as long as i is less than or equal to

five it's not going to display this last

element so we would need some way to

update this condition

a better solution instead of using a

number here is that we could calculate

the amount of elements within our array

and loop that many times and one way in

which we could do that is to use the

size of operator so let me demonstrate

the size of operator real quick it will

return the size of an operand in bytes

so let's print this

so this will be an integer

and we will use the size of operator and

pass in our array of prices so this size

is going to be in bytes

so the size of our ray in bytes is 48

bytes we have six elements made up of

doubles each double uses up eight bytes

so six times eight is 48 so now let's

use the size of operator instead size of

prices

but we are going to divide the size of

our array by the size of one of these

elements they're all going to be

consistent because they all have the

same data type so we will take size of

prices divided by

the size of one of these elements let's

say prices at index zero

so 48 divided by
eight equals six we will iterate through

this for loop six times and here's our

array we have 5 10 15 25 20 30 and we

can add or remove elements freely and

there's no need to update our code

because we may not remember to do that

later on

so yeah that's one way to loop through

and print the elements of an array you

can use a for loop then use a printf

statement and for the index of your

array you can use the index of your for

loop then if you would like your for

loop to calculate how many times it's

going to iterate through this array you

can use the size of operator pass in

prices divided by the size of one of the

elements and that will calculate how

many elements are within your array

so yeah that's one way to loop through

the elements of an array if you would

like a copy of this code i'll post this

to the comment section down below and

well yeah that's how to loop through and

print the elements of an array in c

hey everyone two dimensional arrays it's

an array where each element is an entire

array it's useful if you need a matrix

grid or table of data let's begin by

creating a simple one-dimensional array

of maybe some numbers so the data type

is int

the array name will be numbers and let's

initialize this array with a few numbers

1 two and three something simple so if i


would like to store a grid or matrix of

data these elements will be the first

row and i can add a second row

so separate each row with a comma then

another set of curly braces and then you

can add more values so let's say four

five and six and we'll stop here with

these separate arrays we will surround

with a set of curly braces

and preceding the first set of straight

brackets we will add a second set of

straight brackets so this is now a two

dimensional array however with a two

dimensional array we have to specify a

maximum size of elements within each of

these arrays let's say that each of

these arrays will have a maximum size of

three elements a piece so within the

second set of straight brackets i will

list three and you can although it's not

necessary set a maximum amount of arrays

within your two-dimensional array

so let's say two because we have two

separate arrays within our

two-dimensional array now to better

visualize how this is more or less a

table of data i'm going to rearrange

these

so this may be a better visualization

this first set of straight brackets is

for the number of rows and the second

set of straight brackets is for the

number of columns so we have two rows

and three columns within our


two-dimensional array now you can

declare a two-dimensional array but not

assigned values quite yet but you'll

need to set a maximum size so right now

i'm just going to turn this into one

giant comment

and let's declare a two-dimensional

array with two rows and three columns

and here's how to assign some values we

will type the name of the array followed

by two sets of straight brackets we need

a row number and a column number so the

first column within the first row is

going to be zero zero because computers

always start with zero

and let's assign this a value of one the

second column within the first row

would be

zero one and let's assign two there

then zero two and that will be number

three so the first column within the

second row would be numbers one zero and

this will be four then we will follow

the same pattern so where five was that

would be one one

and six is one two

so this is another way to initialize an

array you can set a maximum size and

then assign some values later or you

could assign all of the values right

from the beginning if you know what they

are okay now how can we display the

elements of a two-dimensional array

we'll have to use nested loops

so let's create a for loop and i will


declare an index of i

set this equal to zero and for the time

being i'm going to say i

is less than the number of rows that we

have so right now we have two rows but

we're going to change this value later

to something that's more flexible that

will calculate the amount of rows that

we have and then i will increment i by

one now let's create a nested loop

that's in charge of keeping track of the

columns

and let's use an index of j because we

do not want to reuse i

so set j equal to zero we will continue

this as long as j

is less than however many columns we

have three a maximum of three and then

increment j by one so during each

iteration of the inner for loop let's

display one of these elements so we will

use the format specifier for an integer

d is fine

followed by our array numbers and then

we have two indices so the row is going

to be i

and this will begin at zero

and the columns is j this will also

begin at zero so after each iteration of

the inner for loop we will increase j

when we finish the inner for loop we

will increment i by one so by using

nested for loops we can iterate over all

of the elements of this array so i'm


just going to add a space after our

number and we should probably add a new

line after each row so i'll add a new

line let's test this

here we go we have our table of two rows

and three columns now there's one

situation that we may run into what if

we change the amount of rows and columns

that we have so let's say that we add

one more row our 2d array of numbers

will have three rows and three columns

row two column zero equals seven

row two column one will equal eight and

row two column two will equal nine so if

i were to run this again well this last

row is not going to be displayed so it

would be better if we can calculate how

many rows and columns are within our

two-dimensional array and here's one way

to do so i'm going to declare two new

variables int rows

and into columns and i will set the

condition of the outer for loop to be as

long as i is less than rows and the

inner for loop will be j is less than

columns

now we just need to calculate what these

numbers are going to be to calculate

rows we can use the size of operator and

then pass in the entire size of our

two-dimensional rib and we're going to

divide this by the size of one of our

rows they're all going to have the same

size so we can pass in our rain numbers

and then specify one of the rows let's


say the first row they're all going to

be the same okay so that's how we can

calculate the number of rows that we

have now to find the number of columns

we can copy what we have here and then

just make a few changes

so we will say

the size of the first row row 0

divided by the size of one of the

elements found within the first row

so we can say zero zero and let's print

the amount of rows and columns that we

have just to test it

so we have rows

and columns

i'm just going to add a new line

character real quick

okay so we have three rows three columns

and here's our table three rows with

three columns a piece so yeah that's

basically a two-dimensional array it's

an array of arrays where each element is

an entire array it's useful if you need

a matrix grid or table of data and in

this example we made a table of integers

just the numbers one through nine so

there's a couple different ways in which

you can initialize a two-dimensional

array but you'll need two sets of

straight brackets it's optional to set a

maximum number of rows but it is

necessary to set a maximum number of

elements within each row and then to

access one of the elements you use two


indices one for the row one for the

column so yeah those are two dimensional

arrays if you would like a copy of this

code i'll post this to the comment

section down below and well yeah those

are two dimensional arrays in c

hey everyone in this video i'm going to

show you how we can create an array of

strings let's say we will have an array

named cars

so we will need a two-dimensional array

so we need two sets of straight brackets

and within the second set of straight

brackets we will specify a maximum size

for each of these elements let's say

maybe 10 characters so a string is

already an array of characters let's add

our first string maybe we have a mustang

so to add a second element we would

separate the next one with a comma then

we can add another string

let's say we have a corvette and then

one more how about a maybe camaro okay

so with all of these different strings

i'm going to surround with a set of

curly braces and here we go we have an

array of strings it's basically a 2d

array of individual characters except

each element is a string now one

important difference with an array of

strings is that we can't directly change

one of the values

let's say car's at index zero equals a

tesla

and then i'm going to try and run this


so we can't directly assign a new value

one way in which we can do so is to use

the string copy function so if you're

going to use the string copy function

include this import

string dot h okay so to update one of

the values i will use string

copy

pass in my array

and an index number

followed by a string so let's say a

tesla and this would work now to display

an array of strings we can use a for

loop

and there's no need for a nested loop so

we will create an index i set this equal

to zero i would like to continue this as

long as i is less than and we will

calculate how many elements are within

our array so we will use the size of

operator pass in our array divided by

one of the elements

size of

cars and maybe the first element of zero

and then increment i by one during each

iteration so then during each iteration

let's display one of these elements

using a printf statement

let's display a string

i'll add a new line after each printf

statement

and let's display our array cards at

index of i

so this should display tesla corvette


and camaro in that order

tesla corvette and a camaro so yeah

that's an array of strings it's really a

two-dimensional array of characters but

it involves less steps because each of

these strings is already an array and if

you need to update or edit one of the

values you can use the string copy

function so yeah that's how to work with

an array of strings if you would like a

copy of this code i'll post this to the

comments section down below and well

yeah that's how to work with an array of

strings in c

all right what's going on people so in

this video i'm going to show you how we

can swap the values of two variables now

you may be wondering why the heck do we

need to know this so swapping variables

is actually very common within sorting

algorithms and when we reach the next

topic on sorting arrays we'll need to

learn how to do this so let's begin i

have two variables x and y x contains

the letter x y contains the letter y and

let's print these values i'll use a

printf statement let's display x

and y

x equals x y equals y so how can we swap

these let's try x equals y and see what

happens within both x and y the value is

y what about y equals x

well then both variables contain the

character x so what can we do it seems

like we're stuck what we could do is


that we could introduce a third variable

let's say char and let's name this temp

because it's a temporary variable so we

have a third variable to work with as

temporary storage for some value so

let's assign

temp is equal to x

and then we will assign

x equals y

and then lastly y equals temp

and this should work let's try it

yep x equals y and y equals x

now this is a little bit different if

you're working with strings so let's say

these are character arrays

and we'll pretend that these are maybe

glasses holding some fluid x contains

water

and y contains maybe lemonade

and let's make temp a character array as

well but we need to declare a size let's

say 15. okay so this isn't gonna work

we're already receiving problems

expression must be a modifiable l value

so when working with arrays it's not

enough to simply assign values

we could use the string copy function so

let's get rid of these and we will use

string copy oh also make sure that you

include this header file okay so we will

copy the contents

of x

over to temp

and it's the same procedure as before


string

copy y

over to x

and string

copy

temp over to y

and then make sure you change these

format specifiers to strings

x did contain water now it contains

lemonade y did contain lemonade and now

it contains water

when swapping variables i like to

imagine my variables as glasses and they

contain some fluid if we pour the

contents of one glass into the other

well then the contents will be pushed

out and overflow so it would be wise of

us to introduce a third glass that's

empty to hold one of these fluids so

then we can pour the contents of one

variable into the other now here's one

issue that you may run into when using

the string copy function if the length

of the second argument is less than the

first argument this can lead to

unexpected behavior i'm going to replace

lemonade with soda and let's see what

happens

so x doesn't contain anything but y

contains water one solution is that we

can make these character arrays the same

size

let's say that they're both 15

and that should solve that issue so

that's something you may need to take


into consideration when using the string

copy function if you're going to swap

strings so yeah everybody that's how to

swap the values of two variables if you

would like a copy of this code i'll post

this to the comment section down below

and in the next video i'm gonna show you

how we can sort the elements within an

array and well yeah that's how to swap

the values of two variables in c

hey uh what's going on people so in this

video we're going to write a small

program to sort the elements of an array

let's begin with an array of integers

and then later we'll create an array of

characters the data type will be int and

let's name this array

and assign some values make sure that

they're not in order just make up some

numbers that's fine

looks good to me now let's calculate the

size of our array because we'll need to

know how many times we're going to

iterate through our array so int size i

will set this equal to the size of

operator pass in our array this will

calculate the size of our array in bytes

and to find the number of elements we

can divide this by the size of just one

element so size of array divided by the

size of array at index of zero

size will equal the amount of elements

within our array and just to keep this

code more organized let's declare a


function to actually sort all of this

for us so we don't have to do that

within the main function

so let's declare a sort function the

return type is void we're not returning

anything and let's name this sort

and there will be two parameters

an array of integers

and integer size

and let's invoke this function we're

invoking sort and then we need to pass

in two arguments

our array

and a size

within the sort function we'll need

nested loops we can use four loops

so the outer for loop will be int i set

this equal to zero and we will continue

this for loop as long as i is less than

the size of our array minus one and then

increment i by one and then we need an

inner for loop so let's copy our outer

for loop paste it and make a few changes

so the index for the inner loop will be

and we'll continue this as long as j is

less than the size of our array minus

one then j plus plus

here's what we're doing within our array

so we will begin at our first index

we're checking to see if the element on

the left is greater than the element on

the right if so we're going to swap

these two values and we'll need the help

of a temporary variable much like what


we learned in the last topic so let's

check to see if the element on the left

is greater than the element on the right

if it isn't we do nothing

so we need an if statement

if array

at index of j

is greater than array at index of j plus

one

we're adding plus one because we're

checking the element directly next to

the one that we're currently examining

so if the number on the left is greater

than the number on the right we will

perform a basic variable swap

so let's declare a variable in temp to

temporarily store some value and i will

set the sequel to array at index of j

now i need to move the element on the

right over to the element on the left

array

at index of j

equals array at index of j

plus one and then lastly whatever's

within temp i'm moving that to the

element on the right so array at index

of j plus one

equals temp and that's it so if you

would like to optimize this you can set

size

minus i

minus one basically this is a bubble

sort so depending on the size of this

number it's going to find a final


resting place since 9 is going to be the

largest it's going to be pushed all the

way to the right because we will examine

9 against each of these numbers so once

9 is pushed all the way to the right all

these other numbers that are less than 9

will be on the left so it's already

partially organized and now we just need

some way to display the elements of our

array so let's declare a print function

void and let's name this print array

and these will have the same parameters

an array of integers and into size

and this is a basic for loop

so for

and i set this equal to zero

we will continue this loop as long as i

is less than the size of our array and

increment i by one

and i would like to display each integer

and maybe i'll separate these with the

space and we are displaying our array at

index of i and all we have to do is

invoke the print array function

and then pass in our array and our size

and let's take a look fingers are

crossed

oh yeah there we go our array is now

sorted now if you would like this in

descending order all we have to do is

switch this if statement around from

greater than to less than

and our array is sorted in reverse order

and we could sort an array of other data

types too this time let's sort an array


of characters so let's declare an array

of characters this time

and make up some characters

so then to sort an array of characters

let's change the data type of our array

to characters

and then when we display each character

make sure that we're using the c format

specifier because we were using d before

and this should now be sorted

yep so that's currently in reverse order

so then to switch that around just

change the sign

all right there you go so yeah everybody

that is a simple program to sort the

elements of an array this is a basic

bubble sort and if you're interested in

learning more about sorting algorithms i

do have a playlist on data structures

and algorithms if you would like a copy

of this code i'll post this in the

comments section down below and well

yeah that's how to sort a simple array

in c

okay everybody so let's talk about

structs a struct is short for structure

think of it as a collection of related

members kind of like variables they can

be of different data types unlike with

arrays structs are listed under one name

in a block of memory in order to refer

to that struct we can refer to a

variable name and then we have access to

that block of memory that contains


related members and lastly structs are

very similar to classes in other

languages if you're familiar with more

than just c you'll probably know what a

class is but there are no methods within

a struct it's only members so we can

actually use structs to mimic real world

objects let's say that maybe we're

playing a game and we need two players

each player will have a name and a score

these will be the members so to create a

struct outside of our main function we

will type the keyword struct followed by

a tag name let's say we are working with

players then we need a set of curly

braces then end it with a semicolon so

any members think of these like

variables so let's say we have a

character array named name and i'll give

this a size of maybe 12.

so we will declare these but not assign

them we'll do that later and we have an

int named score so each player is going

to have a name and a score kind of like

we're playing an arcade game now to

assign some of these values we're going

to create a type of variable and a

player is going to be kind of the data

type so we will type struct

then the tag name

which was player

and then a variable name let's say we

have player 1 and player 2. so with

these structs you can reuse them so we

have struct player player 1 and struct


player player 2. so we can assign values

to these members however if we have an

array of characters we're going to use

the string copy function

so let's use the string copy function

then to access one of the members you

will type the name of that struct so

let's say player one and then follow

this with a dot the dot is a member axis

operator so after typing the dot we have

access to a name and score member so

let's set the player's name equal to

whatever your first name is now if

you're not working with an array of

characters such as an integer you can

just access these directly so let's set

player one's score two equal maybe four

points and we also have player two but

we have not assigned values to its

members

so this time let's assign player two's

name and score

so we can just copy what we have but

change player 1 to player 2. player 2

let's say is bra and player 2's score is

5. now if i would like to display these

members i can do so with a print

statement so printf let's display our

name first so i will use the s format

specifier

player one dot name and then i'll add a

new line then to access player one's

score well that's an integer so i will

use the d format specifier player one


dot score and then let's do the same

thing with player two

so player two dot name and player two

dot score so we have our player one

strucks name member as bro and score

member set to four and then our player

two struct has a name member of bra

and a score member of five so yeah

that's basically a struct it's a

collection of related members think of

these kind of like variables they can be

of different data types unlike arrays

and they are listed under one name in a

block of memory so in this example we

have player 1 and player 2. player 1 and

player 2 refer to different blocks of

memory which contain their own unique

members if you're familiar with other

programming languages they're very

similar to classes but they cannot

contain any methods so yeah those are

structs if you would like a copy of this

code i'll post this to the comment

section down below and well yeah those

are structs in c

all right typedef typedef is a reserved

keyword that gives an existing data type

a nickname here's an example let's

create a character array of 25 bytes and

we'll say that this is user one so

character

user one and the size is 25 bytes

and then make up some username

okay so writing some of the syntax can

be somewhat tedious what a lot of c


programmers will do is that they will

use this type def keyword to give some

data type a nickname let's use this type

def keyword to give a character array of

25 bytes some nickname so i'll do this

outside of the main function we will

type type def

then our data type

so this is a character array of 25 bytes

and we need some sort of nickname so

let's say that a character array of 25

bytes will be known as a user

now i don't need all of the syntax now i

can type my data type

user and then some variable name let's

say user one from this point forward if

i need a character array of 25 bytes i

can call that a user that's my nickname

now one place where you see this used a

lot is with structs this time let's

create a struct at first we won't use

the typedef keyword and then i'll show

you the benefits later so let's say this

is a struct

and the tag name is user

users will have let's say three members

a character array named name of 25 bytes

a password of 12 bytes

and int id like an id number

so to create a struct we would have to

type struct

then the tag name

user

and a variable name


and let's assign some of these values

i'll assign a name password and id

looks good to me okay then if i need to

create user two

i would type again struct user some

unique variable name and make up some

values

okay so with a strut if i would like to

use the typedef keyword i will precede

the struct keyword with typedef

and i don't necessarily need this tag

name and after the last curly brace here

i will add my nickname i'll call this a

user if we need to create a user struct

we no longer need to use the struct

keyword we can remove this

and this should work so let's print some

of these members

and here are the two users that we

created yeah so in conclusion typedef is

a reserved keyword that gives an

existing data type a nickname and it's

mostly used for convenience if we use

the typed up keyword when declaring a

struct we no longer need to use that

struct keyword to create a struct we can

just use this nickname as the data type

and then come up with some unique

variable name so yeah that is the

typedef keyword if you found this video

helpful please be sure to give this

video a thumbs up leave a random comment

down below and subscribe if you'd like

to become a fellow bro

hey everybody so in this video i'm going


to show you how we can create an array

of structs let's say we're working with

students and we need to print each

student's name and gpa so let's create a

struct outside of our main function type

struct and then a tag name for the

struct let's say student so each student

will have a name and a gpa

so let's create a character array named

name i'll set a maximum size of maybe 12

characters

and a gpa that could be a float

so float gpa now let's initialize some

structs we type struct followed by the

tag name and then some variable name to

identify each struct so let's say we

will have four students overall and i'll

go ahead and assign some values right

away when we initialize the struct so we

need a name and a gpa so the first

student let's say is spongebob

and spongebob has a gpa of 3.0

so we can copy this and create a few

more students so student one student two

student three and student four

next we have patrick

patrick has a 2.5

then sandy sandy is smart so she has a

4.0 and squidward

squidward has a 2.0 so we have four

students now we will create an array so

the data type of our array what it's

containing will be struxx it will be

struct student it's kind of like the


data type so with an array you have to

declare what you're going to be putting

within the array struct students and

then we need an array name so this will

be students and then specify a maximum

size if you need one but i'm just going

to initialize this array with some

students so let's add student 1

student 2

student 3

and student 4 and there we go we have an

array of structs

now if i would like to display each

student's name i can use a for loop to

loop through our array

so for

curly braces we will create an index

into i set this equal to zero

we will loop through this as long as i

is less than and then we need to

calculate how many elements are within

our array so we have four elements but

we can do that by using the size of

operator passing our array and then

divide this by the size of one of these

elements

size of students and then pick maybe the

first element of zero after each

iteration we will increment i by one so

then within our for loop let's print

each student's name

so let's use the s format specifier to

display a string and we will display our

array at index of i whatever our counter

is
and we will use the member axis operator

of dot so follow students at index of i

with a dot then we have access to a name

and a gpa so let's display each

student's name and then i'll add a new

line after each printf statement

so there we go we have spongebob patrick

sandy and squidward now let's display

each student's gpa so let's copy this

line

we are displaying a float so the format

specifier for a float is f

students at index of i

dot

gpa then i'll get rid of that new line

character and let's take a look to see

what we have

okay we can see each student's name and

gpa but we may want to format this

so after each student's name i'll add a

tab and i'll allocate maybe 12

characters to display each student's

name and then left justify it and then

with our gpa let's display two digits

after the decimal so i will add

dot 2

so this should look better

yeah that's much more organized so we

have spongebob with the gpa of 3.0

patrick with 2.5 sandy with 4.0 and

squidward with a 2.0 so yeah that's how

to create an array of structs if you

would like a copy of this code i'll post

this to the comment section down below


and well yeah that's how to create an

array of structs in c

well well well welcome back so enums

short for enumerations they are a

user-defined type of named integer

identifiers a benefit is that they help

make a program more readable either for

us or for somebody else that's looking

over our code so here's how to create

some enums you can either declare these

within the main function or outside of

the main function let's do so outside of

the main function so to create some

enums type the keyword enum followed by

a unique identifier let's say we're

working with days of the week so let's

say day

curly braces and then end this with a

semicolon so enums are constants and

let's declare some constant names let's

say the seven days of the week so

separate each constant with a comma and

we will just go through the days of the

week

here are the enumerations that we

declared the days sunday through

saturday the days of the week now each

of these constants has an associated

integer so beginning with your first

constant this will have a value of zero

then the next will have one

then two then three then you continue on

in that pattern but you can give these a

unique value let's change it sunday to

one because it's the first day of the


week then monday will be two and then we

will just continue with these

now to use one of these enums we would

type enum then our identifier name day

it's kind of like a data type and then

some variable name let's say today and

then you can set the sequel to one of

these constant names let's say that

today is sunday

so an important note with these

enumerations they're treated as integers

and not strings if i need to work with

one of these enums we're going to treat

them as if they were an integer so just

for an example i'm going to print the

value contained within today so this is

going to be an integer so we will use

the d format specifier and we will

display today

so since today is equal to sunday this

has an associated integer value of one

and if i display that

this will print the number one if i

change this to saturday well then it

will print the number seven

so an important note is that enums are

not strings but they can be treated as

integers now how does this make a

program more readable so let's write an

if-else statement that's going to check

what today is

first we'll begin with using the

associated integer value so if today

is equal to 1
or

today

is equal to 7

then that means it's either sunday or

saturday and let's print a message

let's say it's the weekend

party time

else we will print something else

i have to work today

so today is set to saturday that means

that saturday has an associated integer

of seven

so if today is equal to one or seven

well then we will execute this if

statement it's the weekend party time i

think i'm just going to add a new line

real quick

now if i set this to a different day of

the week let's say monday

well then i have to work today so the

way that this is written now

it's not too readable so instead of

using an integer value let's use the

associated name with each of these

constants so let's replace

one with sunday

and seven with saturday and i'll change

this to maybe sunday

so this is a lot more readable

especially if somebody else is reviewing

your code they may not understand why

today is equal to one or today is equal

to seven but this makes a lot more sense

oh so if today is equal to sunday or if

today is equal to saturday then we print


it's the weekend party time so that's a

huge benefit with enums is that they

help make a program more readable so to

declare enums you type enum then an

identifier and then you can list as many

constants as you would like and you can

give them an associated integer value

too so yeah those are enums if you'd

like a copy of this code i'll post this

to the comments section down below and

well yeah those are enums in c

hey uh what's going on everybody so in

this video i'm going to show you how we

can generate some random numbers in c

just as a disclaimer these are

pseudorandom numbers they are a set of

values or elements that are

statistically random so don't use these

for any sort of cryptographic security

now before we begin include these two

header files at the top

stdlib and time the first thing that

we're going to do is use the current

time to generate a seed which we need

for random numbers so we can use the s

rand function s for seed rand for random

and then we will pass in the current

time

time function pass and zero so we will

use the current time as a seed for

random numbers and then the function

that you need to generate a random

number using this seed is the rand

function so let's store our number


within a variable maybe number one int

number one and i will set the sequel to

then invoke the rand function now the

rand function will give you a random

number between 0 and 32 767.

so i'm guessing we probably don't need a

number that large so depending on the

range of numbers that we need we can use

modulus and then the maximum number that

you would like so if i'm rolling a six

sided dice i can say modulus six so the

modulus operator gives you the remainder

of any division so technically this

gives us a random number between zero

and five because computers always start

with zero but you can add an offset so

if i need the numbers one through six i

can just add plus one to the end and

then maybe i'll surround this section

with a set of parentheses just to make

this more readable so generate a random

number between zero and five add one

that gives us a random number between

one and six and let's just test that

theory so i'm going to use printf and we

are displaying an integer

and let's display number one so we

should have a random number between one

and six

and our random number is two and if i

run this again this will be a different

number probably yup six okay now if i

need to generate a couple different

random numbers i can just use this rand

function again so let's say we are


rolling three dice

number one number two and number three

and then i'll print these as well

so number one number two and number

three and i'll add a new line character

after each of these print statements

okay so this will give us three random

numbers between one and six one three

one

three five six

now it is important that we're

generating a random seed let me show you

what happens when i take this out

so this will give us the same numbers

over and over again six six five

six six five

and six six five so that's why it's

important that we use a seed for random

numbers now another thing too if you

need a larger number you can just change

this number for example i play a lot of

dungeons and dragons so i may need to

roll a 20-sided dice so i can just set

this to 20.

so 288

and let's try this again 12-5-4 so yeah

that's how to generate some random

numbers in c if you would like a copy of

this code i'll post this to the comment

section down below and well yeah that's

how to generate some random numbers in c

hey y'all what's going on everybody it's

you bro hope you're doing well and in

this video we're going to create a


number guessing game in c so sit back

relax and enjoy the show

if you find this video helpful please

remember to like comment and subscribe

your support will help keep this channel

running hey everybody so now that we

know how to generate some pseudo-random

numbers in c i thought this would be a

good opportunity for us to create a

number guessing game if we're working

with pseudorandom numbers be sure to

include at least these three header

files at the top of your program so

let's generate two constants min and max

const int and a naming convention for

constants is to make all of the letters

uppercase

so minimum will be the minimum number

that we will generate when we generate a

random number so let's pick a number

between maybe one and one hundred so min

will be one

and max will be 100 but feel free to

take the liberty to choose some other

numbers and we'll need int guess to

store a user's guess

int guesses to keep track of the guesses

and int

answer okay now if we're working with

random numbers we'll want to create a

seed and to do that we can actually use

the current time so use the s rand

function and pass in time pass in zero

so this uses the current

time as a seed to generate some random


numbers

and if we need a random number between

these two constants min and max this is

what we can do

so we will assign answer set this equal

to

call the rand function

and use the modulus operator

and set this to max and then we will add

min as an offset

so this will generate a random number

between these two constants 1 and 100 or

some other numbers if you have something

different so this line of code will

generate a random number

between

min

and max

now before we actually move on let's

test this just to be sure that

everything's working

so let's print whatever the answer is so

we're displaying an integer we are

displaying

answer

and let's see what this is

so my answer this round is 73 if i run

this again it is 93. now if i change

these values we will adjust the range in

which some random numbers will generate

so if i set min to 100 and max to 1000

that should change the range of numbers

and this time i have 334 but i'll change

this back to 1 and 100


okay so we know that we're generating a

random number so let's move on

let's create a do while loop so it's

going to take at least one guess in

order for somebody to guess the correct

answer so do curly braces we'll add

while and check a condition at the end

and the condition is guess

does not equal

answer so let's create a prompt and ask

the user to enter a guess

enter a guess

and we will use scanf to accept some

user input so this is an integer

and we are storing this within

guess so address of operator guess

now that we have our user's guess let's

compare it to our answer

so we'll use an if statement and check

to see if guess

is greater than answer so that means a

user guessed a number that was a little

too high

so let's print a message to let the user

know

to

hi

and then we can use an else if statement

else if

guess

is less than answer well then their

guess was too low

print too low

so if our guess is not greater than the

answer or less than the answer that


means they must have got it right

so within an else block let's print

correct

so then after our if else statements

let's increase guesses by one guesses

plus plus

the very best possible score a user can

get is one if they guess it on the first

try so before we finish a while loop we

will increment guesses by one

so then once we escape our while loop

let's print the user's final score

so we will print

the answer

this is an integer

and we are displaying

answer

and we will display the guesses it took

so

guesses

and display the value found within

guesses

and this part isn't necessary but i like

to add some text decorations

so maybe i'll add a bunch of asterisks

to make it look nice

let's run it

enter a guess i'll guess something right

in the middle between so maybe 50.

so that guess was too low so maybe 75

okay that was too high so our numbers

between 50 and 75 how about 62

that's too low so it's between 62 and 75

how about 69
that's still too low so between 69 and

75

maybe 72

that's still too low so it's between 72

and 75

73

all right that was the right answer i'm

just gonna fix one thing real quick

uh let's add a new line here okay let's

try this again okay until i guess i'll

try 50 again that's too high maybe 25

that's still too high what about 12

2 low

maybe 18

2 low 21

that's still too low 23 too low 24

and 24 was the correct answer all right

everybody so i thought that would be a

fun guessing game we could create for

practice if you would like a copy of all

this i'll post this to the comment

section down below and well yeah that is

a simple number guessing game in c

all right people so now that we know how

to create an array of strings i thought

this would be a good opportunity for us

to create a quiz game so before we begin

make sure to include these two header

files at the top of your program so

let's begin with a 2d array of

characters and these will store our

questions

and i'm going to set a maximum size for

each question to 100 bytes

and we can go ahead and initialize this


array with some questions so remember

with strings each string is its own

array

so let's ask maybe three questions but

feel free to pick any amount that you

like

and come up with any questions you would

like as well or you can copy me i don't

care

what year did the c language debut then

separate each string with a comma

then just to make this more readable i'm

going to go down to the next line

so this is question two now

who is credited with creating c

and one more question

what is the predecessor of c so now we

have some questions we'll need some

options this could be a separate 2d

character array

char

options

and i'll copy the dimensions from

questions

and we'll create four sets of options

for each question

this is the first set of options for the

first question and then let's add a

second set of options for the second

question

and a third set

now we'll create an answer key this will

be a one-dimensional array

so char
answers and the size will be three

and i will set this equal to

my answer key so the correct answers for

my quiz are b

so these will be individual characters

all separated with a comma b

so let's calculate the number of

questions that we have

so i will declare int

number

of

questions

and set this equal to

sizeof operator

pass in our two-dimensional array of

questions

and divide this by one of the elements

because they all have the same size

questions at index zero

and let's declare

char guess to store our guess

and int score to keep track of the

player's score

so now let's begin this i will print

the title quiz game

then add a new line

okay now we need to loop through all of

the questions so let's use a for loop

so we will have an index of i set to

zero

and i would like to loop through this as


long as i is less than the number of

questions that we have

then increment i by one

and to test this let's print our

questions

so printf

we're displaying a string so use the s

format specifier

questions add index of i

and then i'll add a new line character

after each printf statement okay let's

at least test this so we should cycle

through our questions

okay here are my questions what year did

the c language debut who is credited

with creating c

what is the predecessor of c

and this part isn't necessary but i'm

going to add some text decorations

i'll just display a bunch of asterisks

i'll do that before and after the

question

and let's try that again oh then add a

new line character

that's a little bit better

after our question let's display the

possible options

so we will need a nested for loop

so four

now this part's gonna be a little bit

tricky

we need to begin our for loop at every

fourth string

within our for loop let's set int j


equal to

i times four

so during the first iteration i will be

zero so zero times four is zero but

during the next iteration of the outer

for loop i is going to equal one so one

times four is four

so that way we will begin the inner for

loop with every fourth string within our

2d array of options

and the condition is going to be

j is less than

times 4

and then we would like to display

four strings

this for loop will cycle four times

beginning at every fourth string

and then we need to increment j by one

now let's print every option

so this is a string i'll add a new line

and we are printing

options at index of j

and let's test this just to be sure that

it works

okay so we have our question followed by

four possible options

now let's accept some user input after

the nested for loop currently our

program isn't going to wait around for

any user input that's why i displayed

all the questions and options okay we

will create a prompt to have a user type

in a guess

guess and we will use scanf to accept


some user input

we are accepting a single character

and use the address of operator guess

now let me show you what happens when we

run this real quick

so i'm just going to type in anything

let's say a

okay so we skipped question two

that's because after using scanf when we

accept a character we have that new line

character within the input buffer so we

need to clear that

so one way in which we can clear that is

to use scanf again

use the c format specifier and that's it

so this will clear the new line

character from input

buffer

so this should no longer just skip

question two

okay

let's say a

okay so we know we can accept some user

input now

now here's one thing what if somebody

types in a lowercase character i think

that should still count even though

we're looking for an uppercase character

so let's take our guess and use the two

upper function to make it uppercase

guess equals to upper

then pass in guess


so basically we're passing in our guess

making it uppercase and reassigning it

to our guess

and let's write an if else statement to

check our guess if it's equal to our

answer so if else

our condition within our if statement if

guess

is equal to answer at index of i

remember that we're still within the for

loop the outer for loop so we have that

index oh that's answers plural

if a user's guess is equal to the answer

then let's print correct

and then give them one point so printf

correct

and then increment our score score plus

plus

else we will print wrong and you can

give the correct answer if you would

like just do that within here now once

we cycle through all of the questions we

can display a user score so be sure to

do that outside of the for loop the

outer for loop that is so let's use

printf

and display

final score

so i'm going to display two values

so the first will be the player score

divided by the number of questions

so we have two integers to work with and

we are displaying score and number of

questions and then if you want you can

add some text decoration to make it look


cool

so i'm going to run through this quiz

once and intentionally get one question

wrong

so what year did the c language debut

that would be 1972 that's b who is

credited with creating c

uh let's say doc brown

so d

and what is the predecessor of c that

would be b

okay and my final score is two out of

three

so let's try that again and this time i

will try and get one hundred percent so

the correct answer is b

a dennis ritchie

and b

and my final score is three out of three

so yeah i thought that would be a simple

quiz game in c if you would like a copy

of this code i'll post this to the

comment section down below and well yeah

that's a simple quiz game in c

hey everybody let's talk about bitwise

operators these are special operators

used in a bit level programming

knowing binary is important for this

topic so if you don't know how binary

works i would recommend skipping to the

next topic but if you're comfortable

with binary well this video is for you

so let's begin i'm going to discuss five

different bitwise operators and or


exclusive or left shift and right shift

let's create three variables x y and z

x will equal six

y will equal twelve

and z will store our result and we will

set that to be zero

so i'm going to give you the binary

representation of each of these numbers

so six is

this number so we have eight bits that's

a byte and this is the binary

representation of the number six

12 would be this binary number

and zero zero is easy

that would be all zeros so let's use the

and bitwise operator so what we're going

to do is set z equal to x

and y

so imagine this imagine that we're

aligning all of these bits in columns

using the and bitwise operator we're

going to look at our operands x and y if

both of these are a one we will assign

one to our result

and let's begin with the first column on

the right both of these are zeros so our

result will stay at zero and with the

next column we have one and zero and

using the and bitwise operator both of

these need to be 1 in order to assign

one to our result so we will skip this

column now with our third column these

are both 1 so we will assign 1 to our

result the next column is zero and one

we skip it and the rest are just zero so


this binary number is the binary

representation of the number four

so let's test that z equals x and y and

let's print z

and equals we're displaying an integer

i'll add a new line

and we are displaying z

and let's see if this is for

yep our result z is equal to four now

let's move on to or so let's set this

back to zero

and we will set z

equal to x

or y or is represented by a single

vertical bar

and we will print

or let's try and guess what z is going

to be before we actually display it

with the or bitwise operator only one of

these bits needs to be one in order for

us to assign one to the result

so since these are both zero this will

stay at zero

this bit is one this one's zero so this

would be one and for the next column of

bits these are both one so that counts

as well

and we have a one in here so that is one

and the rest are just zero so this is

the binary representation of the number

fourteen and let's see if z is equal to

fourteen

yep we got that right

so let's set this back to zero


now with exclusive ore that is

represented by a carrot with exclusive

ore only one of these bits can be won if

neither or both of these bits are one we

don't assign anything so both of these

bits are zero they will stay a zero

we have one of these bits as one and not

the other so that counts as one now with

this next column both of these are one

and using exclusive ore only one of

these can be one so since these are both

ones we do not assign anything so we

keep that as zero and with the next

column only one of these is one so we

will set this to be one within the

result and this is the binary

representation of ten and let's test

that

equals x

exclusive or y

and we will print exclusive or equals z

and let's see if that's ten

yep z is equal to ten now here's left

shift we will shift these bits so many

spaces to the left using left shift so

we will set z

equal to x and then left shift which is

represented by two left angle brackets a

number of spaces let's begin with one

so we have x equal to six

what we're doing is shifting these bits

one spot to the left

and then adding zero at the end

and this is the binary representation of


the number 12. actually it's the same as

y currently these binary numbers are the

same

and let's print that

so

shift left

and z should equal 12

yep

and if i shift left twice

well then we are just moving these bits

one more space and now this is 24.

there you go

so you probably noticed that there's a

pattern every time we shift a binary

number to the left it effectively

doubles

now let's right shift

so let's copy this

paste it

and we will use two right angle brackets

and this is shift right

and let's set this to 6.

if we're right shifting we shift these

bits one spot to the right and this is

the binary representation of the number

three and if i print this

after shifting right once our result z

is three

every time we shift right we're

effectively cutting our number in half

now if i shift right again

we will shift these bits one more spot

to the right and we are going to

truncate this one at the end and this


will give us one that is the binary

representation of the number one

so technically half of three is 1.5 but

we can't store that 0.5 portion so it

just gets truncated all right everybody

those are just a few bitwise operators

they are special operators used in bit

level programming there's five that we

discussed today but there is another

known as the complement operator but

that's a little bit more complex and i

might save that for another video so

yeah those are bitwise operators if you

would like a copy of this code i'll post

this to the comments section down below

and well yeah those are some bitwise

operators in c

all right everybody so let's talk about

memory memory is an array of bytes

within ram and a memory block is a

single unit in bytes within memory

they're used to hold some value and a

memory address is the address of where a

memory block is located within ram i

like to think of memory as a street with

a bunch of different houses and each

house is a memory block which can hold

some value kind of like they're storing

a person and a memory address is the

house address on that street where that

memory block is located so this would be

a street address like one two three fake

street so when we declare variable let's

say we have char a when we declare a

variable we are setting some amount of


memory blocks aside to store some value

so the memory block that this variable

is using up has some memory address and

if i assign this variable a value let's

say maybe x well then if i was to go

into my computer's memory and look for

this address i would find this character

so imagine we're walking down the street

and we are looking for somebody's

address so we're going house to house

and we find a matching address if i were

to open their front door i should

probably knock first at least then i

will find the character x so that's kind

of an analogy i like to use when

thinking about memory so let's declare a

couple other characters we have char b

i'll give this a value of y

and char c

and i'll give this a character of z okay

so let's find the size of each of these

characters so i'm going to use a printf

statement i'm going to display an

integer

and the size of each of these characters

is within bytes

so i'm going to use the size of operator

and pass in one of my characters so i'm

going to pass in a

and i'll do the same thing with b and c

so the size of each of these characters

is one bite and i think i'm just going

to add a new line here

much better okay now we can actually


access the address of each of these

variables so each of these variables is

using one block of memory a single block

of memory is a byte

so within a printf statement i would

like to display an address so the format

specifier is p

and i will use the address of operator

then the name of one of my variables

so i'll display the address of variables

ab

and c

and then display each on a new line

so here are the memory addresses for

these three variables these addresses

are in hexadecimal these are the street

addresses of each of our memory blocks

on our fictional street

hey uh so this is bro from the future

just a quick crash course on hexadecimal

values with standard decimal values they

use the numbers 0 through 9 but with

hexadecimal you use the numbers 0

through 9 as well as a through f so that

gives you a total of 16 different values

for each digit so that's why there's a

mix of numbers and letters

so each of these variables uses one

memory block they use one byte of memory

so beginning with variable a

this has this street address but if we

go down to the next memory block you can

see that there is just one change f goes

down to e and then with variable c

this address goes down by one so f e d


these are contiguous memory blocks

they're all next to each other but now

if we switch to a different data type

like a short we haven't used these in a

long time

well shorts use two bytes of memory

as we can see here so these hexadecimal

addresses are now going down by two e d

a so each of these variables are using

two memory blocks we need an even larger

house even more memory blocks and they

use up two memory addresses

and then if i change these two integers

well they're going to use up even more

memory

so integers use four bytes memory

and these are the street addresses of

these three variables and doubles use

double the size of an integer

doubles use eight bytes of memory and

these street addresses are decrementing

by eight if this was a fictional street

with houses well doubles use up eight

bytes memory so think of these like

mansions they're using up a lot of space

now what happens with an array i'm going

to declare

char a

and declare an array this will be an

array of characters to begin with so

let's say character array b and i'll

give this a size of one


so i'm going to print the size of a and

the size of b

as well as their memory addresses

our single character a uses one byte and

this is the street address of this

variable and our array b

also uses up one byte

and this is the street address of where

this array begins if i set the size of

this array to 2 well then my array is

going to use 2 bytes

and now it has a different address to

accommodate the increased size of the

array and if i change this to 3 it now

uses 3 bytes of memory and it has a new

address and if i change the data type of

the array we'll have to take that into

consideration so a short uses two bytes

memory and we need three elements so

that's a total of six two times three is

six and if i change this to int and int

uses four bytes so four times three is

twelve and a double

is eight so eight times three is twenty

four so yeah that's kind of the basics

of memory so memory is an array of bites

within ram think of it like a street and

a street contains houses each house is a

memory block that can hold some value

think of each value as a person living

in that house and in order to find a

person we have to know their address

like a street address c refers to these

variables by their street address but

that's difficult for us to understand so


we just refer to this memory address as

a variable name because that's easier

for humans to work with so yeah that's

some basics of memory and c and in the

next video we're going to discuss

pointers so if you would like a copy of

my notes here i'll post them to the

comment section down below and well yeah

that's the basics of memory in c

hey yeah it's you bro hope you're doing

well and in this video i'm going to

explain the basics of pointers in c so

sit back relax and enjoy the show

if you wouldn't mind please like comment

and subscribe one like equals one prayer

for the youtube algorithm

oh yeah we finally made it to pointers

we're only about 40 topics in a pointer

is a variable like reference that holds

a memory address as a value to another

variable array etc some tasks are

performed more easily with pointers and

here's a comprehensive list of a few of

the benefits in this video we're going

to more or less focus on building a

solid foundation with pointers and

understanding how they work so let's say

we have a variable int edge and i'll

give this some value a variable has a

value and an address and let's display

the value and the address of this

variable using two print statements

so first i'm going to display the

address of this variable


address of age then i will use the p

format specifier to display an address

in hexadecimal and we are displaying the

address of age and ampersand is the

address of operator address of age and i

would also like to display the value of

age

value of age

and this is an integer

and we will display age

so variables have a value and an address

this is the address of this variable and

the value at this address

as you know there's tons of different

things we can do with a value of a

variable but there are things that we

can do with an address as well so we can

actually store this address within a

separate variable a variable like

reference and that is called a pointer

so to create a pointer we will make sure

these are of the same data type as the

variable we're pointing to age is an

integer so we will declare this pointer

of the integer data type and the next

step to declare a pointer is that we

will use an asterisk this is the in

direction operator and a common naming

convention for pointers is that you type

lowercase p the name of the variable

you're going to point to but make the

first letter uppercase and i'm going to

set this equal to

the address of age

so the address of age and the value at


this variable are the same and let's

test that theory

so this time i'm going to display

the address of age and the value of ph

and this will display an address so

change the format specifier from d to p

and i'm going to turn this line into a

comment for now okay so these addresses

should both be the same the address of

age as well as the value stored within

ph

so our pointer has its own address but

the value stored within it is an address

and we can access the value at this

address by using the indirection

operator so this time i'm going to print

the value of age

and the value

at

stored

address

and to dereference a pointer you will

type the pointer name ph appreciated

with the indirection operator

as my own personal nickname for the

indirection operator i call it the value

at address operator that's not any

official name that's just how i think

about it so we're extracting a value at

the given address within this pointer so

if i display the value of age and the

value at the stored address using the

indirection operator well both of these

are going to be the same


so we have 21 stored within our edge

and after dereferencing this pointer

we're extracting the value at this given

address

so you use the indirection operator when

you declare a pointer as well as when

you want to access a value at the stored

address

so with the data types of the pointer

you'll want to make sure they're

consistent c is a strongly typed

language so if i change the data type of

my pointer to char

using my compiler i'll receive a warning

initialization of char from incompatible

pointer type int now the actual data

type of a pointer is the same they use

eight bytes to store an address so i'm

going to print the size of our variable

as well as our pointer

so i'll change this data type back to

what it was originally and this time i'm

going to print the size of our age

variable as well as the size of our

pointer

size of age

and we're displaying an integer and this

will be in

bytes size of age

size of pointer age

and then i'm going to display a new line

okay so the size of our age variable is

4 bytes it's an integer integers use 4

bytes so even though we declared our

pointer as an integer
the actual size of our pointer is going

to be 8 bytes that's enough to store a

hexadecimal address

so just as good practice since c is a

strongly typed language you'll want to

be sure that the data type of your

pointer is consistent with the variable

that it's pointing to

now here's one thing that we can do with

pointers we can pass a pointer as an

argument to a function

so outside of my main function i'm going

to declare a function

void

let's say print

age

first we'll do this with passing and

integer so int age

and i will display the value of age

you

are

age years

old

and i will display my age variable

then at the end we will pass in our

variable

print edge and i will pass in age

for now i'm just going to turn all of

these into comments

okay so you know this works

you are 21 years old you could also pass

in a pointer too

so i'm going to this time pass in

pointer age
and we need to change the parameter from

an integer to a pointer

so precede the parameter name with the

indirection operator

and i'll rename this parameter as ph

in order to access the value of the

address stored within my pointer i need

to de-reference

so i will use the indirection operator

then type my pointer name ph

and this will do the same thing as

before

so yeah those are pointers oh and before

i forget you can declare and initialize

a pointer in two steps

but it would be good practice if you're

declaring a pointer to assign a value of

null

since we already declared this pointer

we do not need to use this indirection

operator again when assigning a value so

h equals the address of age

so it's considered good practice to

assign null if you're declaring a

pointer and not yet assigning a value so

yeah that's basically a pointer it's a

variable like reference that has a

memory address as value to another

variable array etc some tasks are

performed more easily with pointers and

to declare a pointer you use the

indirection operator and if you need to

access a value stored within a pointer

you type the pointer name preceded with


the indirection operator so yeah that is

a quick intro to pointers if you found

this video helpful please give this

video a thumbs up leave a random comment

down below and subscribe if you'd like

to become a fellow bro

all right let's do this here's how we

can write to a file in c let's create a

file pointer the data type is file and

i'll name this pf it's a pointer to a

file and i will set this equal to then

invoke the f open function we will pass

in a name we would like to give our file

let's name this test.txt but if you

would like this to be a different file

extension such as html well you can

change it to that then uh we'll keep

this as a plain text file just to keep

it simple and to write to a file there

is a second argument a mode so this

could be w for right a for append r for

read but we are looking for w for now so

it is good practice at the end of your

program to close any files that are open

so we will use the f close function and

pass in our pointer p f make sure to not

dereference it now to write a line of

text to our file we can use f print f

pass in our pointer p f do not

dereference it and then some string of

text let's say spongebob squarepants

so this file will be created in the same

folder as my c program so after running

this
we have a new text file within the same

folder and it says spongebob squarepants

what if i run this again and write

something different like patrick starr

so if the mode is w

then we will actually overwrite any

existing data already within this file

if we need to append a file we can use

the a mode for append so this time let's

append some text to the end of our

document

spongebob squarepants

and you have to keep track of any new

lines that you add too so if i run this

again and this time i am appending some

text

well patrick starr is still there and we

appended spongebob squarepants to the

end of our file

now if you would like to delete a file

here's how i'm going to turn all of this

into one giant comment

let's use a little bit of file detection

let's check to see if our file does

exist

within our if statement let's invoke the

remove method and we will pass in the

name or location to our file

test.txt if we remove this file

successfully it will return zero so if

after invoking the remove function if

this returns zero that's its exit code

that means that file was deleted

successfully let's print a message to

let the user know


that

file

was deleted

successfully

else we will print a different message

printf

that file was not

deleted

okay let's try this so here's my file

within the same folder if i run this

that file was deleted successfully

and that file is no longer within the

same folder you can see here that this

says deleted

and if i run this again we will not be

able to locate that file because it's

not there

now you can write a file to a different

location let's say i would like to write

a file to my desktop i can set a

relative file path or an absolute file

path i'll use an absolute file path

i'm going to get the file location of my

desktop so i'm just going to click on

one of these folders

go to properties

and copy this location

so with my file name i'm going to

precede this with an absolute file path

then any backslashes might need to be

double backslashes

so this time if i write a file

then this file will appear at this

location on my desktop
and here's that file test.txt and it

says spongebob squarepants well alright

everybody that is how to write append

and delete files in c if you found this

video helpful be sure to help me out by

smashing that like button leave a random

comment down below and subscribe if

you'd like to become a fellow bro

alright people so in this video i'm

going to show you how we can read the

contents of a file someplace on your

computer you can either place this

within the same folder as your c program

or someplace else i think it would be

cool if we read a file from our desktops

so i'm going to create a new file and

this is going to be a plain text file

and i'll write a poem i'll name this

poem.txt

here's my beautiful poem

are red

violets are blue

booty booty booty booty

rockin

everywhere

okay i'm going to save

and then i'll need the file location of

where this is located i'm going to right

click go to properties and copy this

file path and save it for later now to

read a file on your computer we'll need

to create a pointer the data type is

file

and i'll name this

p f and i will set the sql to then


invoke the f open function

pass in your file mine is poem.txt

so if this file is not within the same

folder as your c program you'll need a

relative or absolute file path since

this file is on my desktop i could use

an absolute file path

so preceding my file name i will paste

that location and then each backslash

may need to be a double backslash

because that is an escape sequence for a

backslash character okay the second

argument is the mode this time we are

going to read a file so pass in r for

the second argument then it's good

practice at the end of your program to

close any open files

we will invoke the f close function pass

in our pointer do not dereference it and

we will need one more thing a buffer a

buffer is going to act as a container an

array of characters to hold one line of

our text document one line at a time so

let's declare an array of characters

named buffer and i'll set the size to

255. our buffer is going to hold one

line of our file one line at a time and

to read a single line from our file we

will use the f gets function and there

are three arguments our buffer this is

what we're inserting a line of text into

a maximum input size i'll set this to be

255 to match our buffer and then a

pointer to the file that we're opening


and again make sure to not dereference

it so this will read a single line of

text and then let's print our buffer so

we're printing a string and we are

displaying whatever is currently within

our buffer

so after running this this will read a

single line of text whatever's at the

top

roses are red

now if i need to read all of the

contents of my file i can place this

section of code within a while loop

so with our condition i'm going to move

the f gets function within the condition

if we reach the end of a file f gets

will return null so let's continue this

while loop while f gets does not return

no if we do not return null then we will

print whatever's within our buffer now

if i run this this will display all of

the lines from my file roses are red

violets are blue booty booty booty booty

rocking everywhere and if you would like

you can add a little bit of file

detection so before we reach our while

loop let's check to see if that file

even exists before we attempt to open

and read it so let's check to see if our

pointer equals no if it is null that

means we could not locate this file so

i'm going to print

unable to open

file

and we'll create an else statement


else let's read and print the contents

of this file

okay so let's say i get the file

extension wrong let's say i'm looking

for an html file named poem and i try

and read this

unable to open file

but if we are able to locate this file

we will open it and read the contents

and then close this file so yeah

everybody that is how to read the

contents of a file line by line if you

found this video helpful please be sure

to help me out by smashing that like

button leave a random comment down below

and subscribe if you'd like to become a

fellow bro

oh yeah what's going on everybody it's

you bro hope you're doing well and in

this video we're going to create a game

of tic-tac-toe so sit back relax and

enjoy the show

if you find this video helpful please

remember to like comment and subscribe

your support will help keep this channel

running all right let's begin so the

first thing that you're going to need is

to include these files at the top of

your c program and we will create seven

different function prototypes so the

return type of this first function is

void and the name of this function will

be reset board our board is going to be

a 2d character array and our second


function is void print board

which will print our 2d character array

then with this next function this has a

return type event and this will check

free spaces

if after invoking this function this

function returns zero that means the

game is over there's no more places to

move and we will need void player move

when it's the player's turn to move

void computer move when it's the

computer's turn to move

char

check winner

so we have a few different win

conditions to check and void print

winner

and there is one parameter a single

character soap char so these are

function prototypes we tend to declare

these before the main function because

they help with readability after the

main function we will give each of these

a body

so copy and paste those functions and

then give each a body

and with the parameter for print winner

the parameter is char

winner now let's head back to the top of

our program and there's a few global

variables that we're going to declare we

could declare these as local variables

within the main function but this

program is going to get really

complicated then if we have to pass


around pointers to a two-dimensional

array so just to keep this simple i'm

going to create some global variables

there are some downsides to global

variables so i tend to not to like to

use these so we have a 2d array of

characters named board it's our game

board and let's create two constants

constant char player a naming convention

for constants is to make all of the

letters uppercase

and i will set this to a character of my

choice i could be oh or i could be x or

something else maybe i could be a dollar

sign whatever uh i'll set myself to be

an x and then let's create a constant

for the computer constant char

computer and computers will be o so

within the main function we will declare

a local variable char

winner

and i'll go ahead and set this to an

empty space so if our winner is in empty

space that means there currently is no

winner if player wins then that would be

an x if computer wins that's a no within

our main function this is acting as a

driver for our code so the first thing

we'll do is reset our board

so we are going to initialize all of the

different characters within our

two-dimensional board so let's head to

this function

so with our reset board function we need


nested loops

the outer for loop is for the rows the

inner for loop will be for the columns

int i set this equal to zero and i need

to iterate this for loop three times one

for each row that we have

and then we need an inner for loop

so change the index to j

and for each index within our 2d array

at index of i

and j i will set the sequel to an empty

space

so when we call the reset board function

each element within this 2d array of

characters will be an empty space

effectively clearing it

so back within the main function after

resetting our board let's print our

board

and fill in this function

so you can get creative with this

here's one thing that i'll use

so i'm going to print a space

a character a space

a vertical bar

space

character space vertical bar

space

character

these three format specifiers are

placeholders the first character i'm

going to display is our board at index

of zero zero that is row zero column

zero followed by board index zero one

then board zero two


and with the next printf statement let's

display something like this

a new line

three dashes

a vertical bar

three dashes another vertical bar

three dashes then a new line

okay so let's copy these

paste it once

and we need to change these indices

so with this third printf statement

these indices will be one zero one one

one two

and then do this again so copy paste

two zero

two one

two two

then at the end i'll add a new line

printf

new line

oh let me fix one thing

okay so this is what it should be

all right now back within our main

function we're going to create a while

loop and we'll surround our print board

function within this while loop

so our condition is if winner is equal

to an empty space

that means there currently is no winner

and after invoking the check free spaces

function

the value returned does not equal zero

so let's fill in this check free spaces

function
within the check free spaces function

let's declare a local variable int free

spaces and i'll initially set this to

nine then we need a nested for loops

and i equals 0 we will continue this as

long as i is less than 3

i plus plus

then create an inner for loop

change the index from i to j

and within the inner forward loop we're

going to write an if statement

and we are checking to see if our 2d

array of characters bored

at index of i and j does not equal an

empty space

if whatever spot we're on is currently

occupied we will take our free spaces

local variable and decrement it by one

then outside of our for loops we will

return

free spaces

if we return zero that means the game is

over there's no more places a player can

move

so heading back to our main function

it will be let's say the player's turn

to move first

so invoke the player move function and

we'll need to fill this in

with the player move function we will

declare two local variables intex into y

and we will ask a user to enter in a row

number and a column number of where they

would like to move to so using a printf

statement
we will enter

row number

one through three

and then use the scan f function to

accept some user input so this will be

an integer and use the address of

operator x

so a user is going to enter in numbers

one through three for which row that

they need but with arrays they always

begin with zero but a user is not going

to know that so with whatever the user

types in we will decrement x by one

so this gives us rows zero through two

technically

then do the same thing with our columns

enter column number one through three

address of operator y then decrement y

we will check to see if the coordinates

that the user gave are occupied or not

so using an if statement

we will check to see if our board

at index of x

and y

does not equal an empty space that means

that this spot is currently occupied by

another character

so let's print something to let a user

know

invalid move

else that spot is open

so take our board

at index of x and y

set this equal to our player character


so we're going to take all of this code

and place it within a do while loop so

write do

while

place your code that you just wrote

within there

and our condition

is if our board

at index of x

and y does not equal an empty space

if the spot that the player would like

to place their character is currently

occupied then we will ask them again to

enter some coordinates uh then within

our else statement we need to break out

of this while loop okay so that is

everything for the player move function

so then heading back to the main

function

after the player moves we will check to

see if there's a winner

winner equals then invoke the check

winner function

and we will fill in this function next

so find the check winner function and we

need to check all of the different win

conditions

so first we will check each row using a

for loop so this section of code we will

check our rows we'll need a for loop to

iterate three times one for each row

int i

equals zero continue this as long as i

is less than three

increment i by one so this if statement


is going to get a little bit funky we

need to check each set of horizontal

elements

so let's begin with board at index of i

and zero so that would be the top left

element and we are checking to see if

the character here is equal to this

character

so board at index i

and one

and we're checking to see if board at

index of i and zero is equal to board at

index of i and two so here we're

checking to see if this element is equal

to this element and this element is

equal to this element

if they're all consistent we have a

winner so we will return whatever

character is within one of these

elements let's say this one so return

board at index of i index of zero return

whatever character is within here this

section of code will check all of the

win conditions for each row but now we

need columns so check columns

and we can copy most of this so copy it

and paste it

then we just need to change these

indices around

so if board at index 0

is equal to board at index of one

and board at index of zero


i

is equal to board at index of two

i then we will return whatever character

is within board index of zero index of

one so this section of code will check

for any column when conditions then next

we have diagonals there's only two

check diagonals

so let's copy this section of code

paste it so our indices are 0 0

is equal to

1. 1 1 is in the middle and board at

index of zero zero

is equal to board at index of two two

if so then return zero

zero

then we have one more diagonal so copy

this

paste it

and here are the elements if board at 0

is equal to board at

1 1 so 0 2 is the bottom left 1 1 is the

middle and

board at zero zero equals board at two

zero that is the top right corner right

here so if we have a diagonal we have a

winner so return board at zero

2 let's say if after checking all of

these different win conditions there is

no winner

then let's return an empty character

that means there currently is no winner

so then head back to the main function


after invoking the check winner function

let's write an if statement to see if

the game is over

so our condition is if winner does not

equal an empty space that means there is

a winner

or after invoking the check free spaces

function and the value returned is zero

then we will break out of this while

loop this is everything done for the

player now we need to create a section

of code within our while loop for the

computer

so copy this section of code and paste

it and this time it will be the

computer's move

invoke the computer move function and we

will need to fill in the computer move

function

within the computer move function the

computer's move will be randomly

generated and to generate some random

numbers we'll need a seed

so to create a seed to generate random

numbers

invoke the s rand function

pass in time

invoke it pass in zero

and we will declare intex and into y we

will generate two random numbers between

zero and two now before we generate some

random numbers let's check to see if we

even have any free spaces available

so our if statement is going to be check


free spaces invoke it then if this is

greater than zero then we will generate

some random numbers

and we'll do so within a do while loop

so within this do while loop we will

generate two random numbers between 0

and 2.

x equals

invoke the rand function

modulus three

then y equals invoke the rand function

modulus three with our condition let's

check to see if the spot generated is

even open

so board at index of x

and y

does not equal an empty space so we will

keep on generating random numbers until

there is an open space then escape this

while loop so if we find an open space

let's take our board at index of x and y

set the sequel to our computer player

this is all within an if statement

else if there are no more spaces

available

we will invoke the print winner function

and pass in an empty space

this means that there is no winner it's

a draw

now let's fill in this print winner

function this function is fairly easy

if winner is equal to player

then we will print

you win

else if
winner is equal to computer

then we will print

you lose

else if there is no winner then it's a

tie it's a draw

it's a tie

within the main function we just have a

few more things to add so outside of our

while loop we will print our board and

print the winner

print

board

and print

winner

there is one argument whoever the winner

is

so let's run this once

enter row numbers one through three uh

let's say one

and one

so i moved here and the computer moved

to row three column two

uh let's say row three column three

okay so i moved here and the computer is

up here so i moved to row three column

three and our computer is at row one

column three

uh then i'll move to the middle two

two

and it looks like i won this round so

let's try this again and we will

intentionally lose so one one

two one

one two
two two

and unfortunately it looks like i lost

this time let's attempt to tie

and it looks like it's a tie so it looks

like this game is working so what if we

would like to ask the user if they would

like to play again we can easily place

our code within a do while loop so

within our main function

let's create char

response

and we will create a do while loop

so take all of this code after the do

while loop beginning with reset board

copy it

delete it

and then paste it within the do while

loop

at the top of our do while loop let's

reset winner and response

winner equals an empty space

and response equals an empty space

then heading to the bottom of our do

while loop let's ask if the user would

like to play again

so after displaying the winner let's

create a prompt

printf

would you like to play again

y for yes and for no

and i'm just going to clear our buffer

by using scanf and accepting a character

just in case there is a new line

character within our buffer then we will

use the scanf function and accept a


character after clearing our buffer

and we will use the address of operator

response

now just in case somebody types in

lowercase y i would still like to count

that as yes so i'm going to take our

response

set this equal to invoke the to

upper function

pass in response

and with this condition we will continue

playing while our response is equal to

the character y

and at the end let's print

thanks for playing okay let's run this

one last time

all right i win would you like to play

again

i'll type in y for yes

and we have a new game

all right it looks like i win so this

time i will exit by typing n

thanks for playing

so yeah everybody that is a game of

tic-tac-toe if you would like a copy of

this code i'll post this to the comments

section down below hey if you found this

video helpful you can help me out by

smashing that like button leave a random

comment down below and subscribe if

you'd like to become a fellow bro

You might also like