Anda di halaman 1dari 7

Nama: Muhammad Ramadhan

NRP : 3120600043
Kelas : 1 D4 IT B
1. Write a swap() function with the following function header
void swap(int *p1, int *p2);

Use this function to swap the values of two integers.


int main(){
int x = 10;
int y = 20;

// You must figure out how to call the function correctly!


swap(...)

// Should print out x: 20, y: 10


printf("x: %d, y: %d\n", x, y);
}

Jawab:
a. Listing Program
#include <stdio.h>
#include <stdlib.h>
void swap(int *, int *);
int main(){
int x = 10; int y = 20;
puts("Before swap");
printf("x: %d, y: %d\n", x, y);
puts("");
swap(&x,&y);
puts("After swap:");
printf("x: %d, y: %d\n", x, y);
}
void swap(int *p1, int *p2)
{
int z;
z=*p1;
*p1=*p2;
*p2=z;
}
b. Output
Nama: Muhammad Ramadhan
NRP : 3120600043
Kelas : 1 D4 IT B
2) Probem 2
Dari program di bawah ini
a. Buatlah ilustrasi memory-nya
b. Tampilkan keluarannya

#include<stdio.h>
#define N 5
int *findMax(int[]);
main(){
int i,*p;
int arr[N];
for(i=0;i<N;i++) {
printf("Enter value %d:",i+1);
scanf("%d",&arr[i]);
}
p=findMax(arr);
printf("\nThe max value is: %d\n",*p);
}
int *findMax(int data[]){
int *max=data;
int i;

for(i=1;i<N;i++){
if(*max < *(max+i))
*max = *(max+i);
}
return max;
}
----------
Nama: Muhammad Ramadhan
NRP : 3120600043
Kelas : 1 D4 IT B
Nama: Muhammad Ramadhan
NRP : 3120600043
Kelas : 1 D4 IT B

Post Test STRUCT


1. Diketahui definisi sbb :
typedef struct{
float x, y
} point;

a. Deklarasikan dua buah variabel bertipe point, misal titik1 & titik2
b. Pada main(), inputkan 2 buah titik koordinat sembarang pada 2 variabel di atas
c. Definisikan fungsi euclidiean() yang menerima parameter 2 buah titik. Hitung jarak antara 2
titik tsb dg menggunakan rumus phytagoras
Jawab:
a. Listing Program\
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

typedef struct{
double x;
double y;
} point;

double euclidiean(point,point);
main()
{
double p;
point titik1;
point titik2;
printf("input titik x,y :");
scanf("%lf, %lf", &titik1.x,&titik1.y);
fflush(stdin);
printf("input titik x,y :");
scanf("%lf, %lf", &titik2.x,&titik2.y);
puts("");

p=euclidiean(titik1,titik2);
printf("\nJarak 2 kordinat adalah %1f",euclidiean(titik1,titik2));

}
double euclidiean(point a, point b)
{
double c;
c = sqrt(pow((b.x -a.x), 2) + pow((b.y -a.y), 2));
return c;
}

b. Output
Nama: Muhammad Ramadhan
NRP : 3120600043
Kelas : 1 D4 IT B

2. Dapatkan jam sekarang (hh:mm:ss). Tentukan waktu 1 detik


kemudian. Perhatikan jika sudah mencapai akhir detik, menit &
Nama: Muhammad Ramadhan
NRP : 3120600043
Kelas : 1 D4 IT B
jam
a. Listing program
#include <stdio.h>
#include <time.h>

struct times{

int hour;
int minute;
int second;

};

int main()
{
struct times dtk;
struct times dtk_berikut;
printf("Masukkan jam sekarang (hh-mm-ss)\t: ");
scanf("%d-%d-%d", &dtk.hour, &dtk.minute,
&dtk.second);

if(dtk.second<0 || dtk.second >60 ||


dtk.minute<0 || dtk.minute>60||dtk.hour<0)
{
printf("Error Times!");

}
if(dtk.second==60)
{
if(dtk.minute == 60)
{
dtk_berikut.second =0;
dtk_berikut.minute =0;
dtk_berikut.hour = dtk.hour+1;
}
else
{
dtk_berikut.second = 0;
dtk_berikut.minute = dtk.minute+1;
dtk_berikut.hour = dtk.hour;
}
}
else
{
dtk_berikut.second = dtk.second+1;
dtk_berikut.minute = dtk.minute;
dtk_berikut.hour = dtk.hour;
}

printf("Maka jam 1 detik berikutnya adalah\t: %djam-


%dmenit-%d
detik",dtk_berikut.hour,dtk_berikut.minute,
Nama: Muhammad Ramadhan
NRP : 3120600043
Kelas : 1 D4 IT B
dtk_berikut.second);
}

b. Output

Anda mungkin juga menyukai