complete assignment01
This commit is contained in:
5 files changed
+187
No files matched your search
@@ -0,0 +1,37 @@
|
|||||||
|
# Makefile
|
||||||
|
# Compiler and flags
|
||||||
|
CC = gcc
|
||||||
|
CFLAGS = -Wall -std=c11
|
||||||
|
|
||||||
|
# Output
|
||||||
|
TARGETS = pro1.out pro2.out pro3.out pro4.out
|
||||||
|
|
||||||
|
all: $(TARGETS)
|
||||||
|
|
||||||
|
pro1: project1.c
|
||||||
|
$(CC) $(CFLAGS) -o $@.out $<
|
||||||
|
|
||||||
|
pro2: project2.c
|
||||||
|
$(CC) $(CFLAGS) -o $@.out $<
|
||||||
|
|
||||||
|
pro3: project3.c
|
||||||
|
$(CC) $(CFLAGS) -o $@.out $<
|
||||||
|
|
||||||
|
pro4: project4.c
|
||||||
|
$(CC) $(CFLAGS) -o $@.out $<
|
||||||
|
|
||||||
|
# Run targets
|
||||||
|
run1: pro1
|
||||||
|
./pro1.out
|
||||||
|
|
||||||
|
run2: pro2
|
||||||
|
./pro2.out
|
||||||
|
|
||||||
|
run3: pro3
|
||||||
|
./pro3.out
|
||||||
|
|
||||||
|
run4: pro4
|
||||||
|
./pro4.out
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f $(TARGETS)
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#define MEGABYTES_TO_MEGABITS 8
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
float downloadSpeedMbs;
|
||||||
|
float fileSizeMB;
|
||||||
|
float downloadTimeSeconds;
|
||||||
|
|
||||||
|
printf("Enter download speed (Mbs): ");
|
||||||
|
scanf("%f", &downloadSpeedMbs);
|
||||||
|
|
||||||
|
printf("Enter file size (MB): ");
|
||||||
|
scanf("%f", &fileSizeMB);
|
||||||
|
|
||||||
|
downloadTimeSeconds = (fileSizeMB * MEGABYTES_TO_MEGABITS) / downloadSpeedMbs;
|
||||||
|
|
||||||
|
printf(
|
||||||
|
"At %.2f megabits per second, a file of %.2f megabytes downloads in %.2f seconds.\n",
|
||||||
|
downloadSpeedMbs,
|
||||||
|
fileSizeMB,
|
||||||
|
downloadTimeSeconds
|
||||||
|
);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#define CENTIMETERS_PER_FOOT 30.48
|
||||||
|
#define CENTIMETERS_PER_INCH 2.54
|
||||||
|
#define INCHES_PER_FOOT 12
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
|
||||||
|
float heightCm;
|
||||||
|
int heightFeet;
|
||||||
|
float heightInches;
|
||||||
|
|
||||||
|
do {
|
||||||
|
|
||||||
|
printf("Enter a height in centimeters (<=0 to quit): ");
|
||||||
|
scanf("%f", &heightCm);
|
||||||
|
|
||||||
|
if (heightCm <= 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
heightFeet = (heightCm / CENTIMETERS_PER_FOOT);
|
||||||
|
heightInches = (heightCm / CENTIMETERS_PER_INCH) -
|
||||||
|
(INCHES_PER_FOOT * heightFeet);
|
||||||
|
|
||||||
|
printf(
|
||||||
|
"%.1f cm = %d feet, %.1f inches\n",
|
||||||
|
heightCm,
|
||||||
|
heightFeet,
|
||||||
|
heightInches
|
||||||
|
);
|
||||||
|
|
||||||
|
} while (heightCm > 0);
|
||||||
|
|
||||||
|
printf("Bye\n");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
|
||||||
|
int max;
|
||||||
|
int min;
|
||||||
|
int sumOfSquares;
|
||||||
|
|
||||||
|
do {
|
||||||
|
|
||||||
|
sumOfSquares = 0;
|
||||||
|
|
||||||
|
printf("Enter a lower and upper limit: ");
|
||||||
|
scanf("%d %d", &min, &max);
|
||||||
|
|
||||||
|
if (max <= min) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = min; i <= max; i++) {
|
||||||
|
sumOfSquares += i * i;
|
||||||
|
}
|
||||||
|
|
||||||
|
printf(
|
||||||
|
"The sums of the squares from %d to %d is %d\n",
|
||||||
|
min * min,
|
||||||
|
max * max,
|
||||||
|
sumOfSquares
|
||||||
|
);
|
||||||
|
|
||||||
|
} while (max >= min);
|
||||||
|
|
||||||
|
printf("Done\n");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#define ARRAY_SIZE 5
|
||||||
|
|
||||||
|
void printArray(double arr[]) {
|
||||||
|
for (int i = 0; i < 5; i++) {
|
||||||
|
printf("%.1f, ", arr[i]);
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
void copy_arr(double target[], double source[], int size) {
|
||||||
|
for (int i = 0; i < size; i++) {
|
||||||
|
target[i] = source[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
printArray(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
void copy_ptr(double *target, double *source, int size) {
|
||||||
|
for (int i = 0; i < size; i++) {
|
||||||
|
*(target + i) = *(source + i);
|
||||||
|
}
|
||||||
|
|
||||||
|
printArray(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
void copy_ptrs(double *target, double *source, double *lastElement) {
|
||||||
|
while (source <= lastElement) {
|
||||||
|
target = source;
|
||||||
|
source++;
|
||||||
|
target++;
|
||||||
|
}
|
||||||
|
|
||||||
|
printArray(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
|
||||||
|
double source[ARRAY_SIZE] = {1.1, 2.2, 3.3, 4.4, 5.5};
|
||||||
|
double target1[ARRAY_SIZE];
|
||||||
|
double target2[ARRAY_SIZE];
|
||||||
|
double target3[ARRAY_SIZE];
|
||||||
|
|
||||||
|
copy_arr(target1, source, ARRAY_SIZE);
|
||||||
|
copy_ptr(target2, source, ARRAY_SIZE);
|
||||||
|
copy_ptrs(target3, source, source + ARRAY_SIZE);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Reference in new issue
Block a user