From 9e90bec9f7bece201f1b95e216405a2dbf696d77 Mon Sep 17 00:00:00 2001 From: k0rrluna Date: Sun, 9 Feb 2025 09:16:37 +0300 Subject: [PATCH] Chapter4 --- DeitelC/Chapter4/asciiPrint.c | 13 ++++++++ DeitelC/Chapter4/calculateSales.c | 31 +++++++++++++++++- DeitelC/Chapter4/diamond.c | 48 ++++++++++++++++++++++++++++ DeitelC/Chapter4/exercise4-24.c | 18 +++++++++++ DeitelC/Chapter4/integerConverter.c | 20 ++++++++++++ DeitelC/Chapter4/pi.c | 12 +++++++ DeitelC/Chapter4/test2.c | 49 +++++++++++++++++++++++++++++ 7 files changed, 190 insertions(+), 1 deletion(-) create mode 100644 DeitelC/Chapter4/asciiPrint.c create mode 100644 DeitelC/Chapter4/diamond.c create mode 100644 DeitelC/Chapter4/exercise4-24.c create mode 100644 DeitelC/Chapter4/integerConverter.c create mode 100644 DeitelC/Chapter4/pi.c create mode 100644 DeitelC/Chapter4/test2.c diff --git a/DeitelC/Chapter4/asciiPrint.c b/DeitelC/Chapter4/asciiPrint.c new file mode 100644 index 0000000..d3cacc5 --- /dev/null +++ b/DeitelC/Chapter4/asciiPrint.c @@ -0,0 +1,13 @@ +#include + +int main(void) { + + for(int i = 0; i < 128; i++) { + if(i % 10 == 0) { + printf(" %c\n", i); + } else { + printf(" %c", i); + } + } +return 0; +} diff --git a/DeitelC/Chapter4/calculateSales.c b/DeitelC/Chapter4/calculateSales.c index 82c9857..b27359d 100644 --- a/DeitelC/Chapter4/calculateSales.c +++ b/DeitelC/Chapter4/calculateSales.c @@ -2,6 +2,35 @@ int main (void){ int i, j; - + float total = 0; + while(1) { + puts("Enter item number and how many sold: "); + scanf("%d%d", &i, &j); + if(i == 0) { + break; + } + switch(i) { + default: + puts("Invalid value!"); + continue; + case 1: + total += 2.98 * j; + break; + case 2: + total += 4.50 * j; + break; + case 3: + total += 9.98 * j; + break; + case 4: + total += 4.49 * j; + break; + case 5: + total += 6.87 * j; + break; + } + } + printf("Last weeks total retail price: %.2f\n", total); +return 0; } diff --git a/DeitelC/Chapter4/diamond.c b/DeitelC/Chapter4/diamond.c new file mode 100644 index 0000000..e24bdd9 --- /dev/null +++ b/DeitelC/Chapter4/diamond.c @@ -0,0 +1,48 @@ +#include + +int main(void) { + int odd; + + // Prompt user for input + puts("Enter an odd number: "); + if (!scanf("%d", &odd) || odd % 2 == 0) { + puts("Enter a valid odd integer!"); + return 1; + } + + int mid = odd / 2; // Middle point of the diamond + + // Upper half of the diamond + for (int i = 0; i < mid; i++) { + // Print leading spaces + for (int j = 0; j < mid - i; j++) { + printf(" "); + } + // Print asterisks + for (int j = 0; j < 2 * i + 1; j++) { + printf("*"); + } + printf("\n"); + } + + // Middle line of the diamond + for (int i = 0; i < odd; i++) { + printf("*"); + } + printf("\n"); + + // Lower half of the diamond + for (int i = mid - 1; i >= 0; i--) { + // Print leading spaces + for (int j = 0; j < mid - i; j++) { + printf(" "); + } + // Print asterisks + for (int j = 0; j < 2 * i + 1; j++) { + printf("*"); + } + printf("\n"); + } + + return 0; +} diff --git a/DeitelC/Chapter4/exercise4-24.c b/DeitelC/Chapter4/exercise4-24.c new file mode 100644 index 0000000..4c745fc --- /dev/null +++ b/DeitelC/Chapter4/exercise4-24.c @@ -0,0 +1,18 @@ +#include + +int main(void) { + + int i = 5, j = 7, k = 4, m = -2; + +printf("%d\n", i == 5); +printf("%d\n", j != 3); +printf("%d\n", i >= 5 && j < 4); +printf("%d\n", !m && k > m); +printf("%d\n", !k || m); +printf("%d\n", k - m < j || 5 - j >= k); +printf("%d\n", j + m <= i && !0); +printf("%d\n", !(j - m)); +printf("%d\n", !(k > m)); +printf("%d\n", !(j > k)); +printf("%d\n", !m); +} diff --git a/DeitelC/Chapter4/integerConverter.c b/DeitelC/Chapter4/integerConverter.c new file mode 100644 index 0000000..9892a55 --- /dev/null +++ b/DeitelC/Chapter4/integerConverter.c @@ -0,0 +1,20 @@ +#include + +int main(void) { + for (int i = 0; i < 257; i++) { + int t = i; + int binary = 0; + int mult = 1; + + while (t > 0) { + binary += (t % 2) * mult; + t /= 2; + mult *= 10; + } + + printf("Int: %d, Bin: %d, Octal: %o, Hex: %X\n", i, binary, i, i); + } + + return 0; +} + diff --git a/DeitelC/Chapter4/pi.c b/DeitelC/Chapter4/pi.c new file mode 100644 index 0000000..fd5e33c --- /dev/null +++ b/DeitelC/Chapter4/pi.c @@ -0,0 +1,12 @@ +#include + +int main(void){ + + float pi = 4.0; + int sign = -1; + for (int i = 3; i < 8092; i += 2) { + pi += sign*(4.0/i); + sign = -sign; + } +printf("%.6f\n",pi); +} diff --git a/DeitelC/Chapter4/test2.c b/DeitelC/Chapter4/test2.c new file mode 100644 index 0000000..91001c1 --- /dev/null +++ b/DeitelC/Chapter4/test2.c @@ -0,0 +1,49 @@ +#include + +int main(void) { + int odd; + + // Prompt user for input + puts("Enter an odd number: "); + if (!scanf("%d", &odd) || odd % 2 == 0) { + puts("Enter a valid odd integer!"); + return 1; + } + + // Print the diamond pattern + int mid = odd / 2; // Middle point of the diamond + + // Upper half of the diamond + for (int i = 0; i < mid; i++) { + // Print leading spaces + for (int j = 0; j < mid - i; j++) { + printf(" "); + } + // Print asterisks + for (int j = 0; j < 2 * i + 1; j++) { + printf("*"); + } + printf("\n"); + } + + // Middle line of the diamond + for (int i = 0; i < odd; i++) { + printf("*"); + } + printf("\n"); + + // Lower half of the diamond + for (int i = mid - 1; i >= 0; i--) { + // Print leading spaces + for (int j = 0; j < mid - i; j++) { + printf(" "); + } + // Print asterisks + for (int j = 0; j < 2 * i + 1; j++) { + printf("*"); + } + printf("\n"); + } + + return 0; +}