This commit is contained in:
Artur Tamborski 2019-06-14 20:12:18 +02:00
commit e9bbac8249
3 changed files with 147 additions and 0 deletions

42
Makefile Normal file
View File

@ -0,0 +1,42 @@
TARGET = $(notdir $(CURDIR))
SRCEXT = .c
INCEXT = .h
OBJEXT = .o
SRCDIR = .
INCDIR = .
OBJDIR = .
CC = gcc
LD = gcc
LDFLAGS = -lm -lpthread
CCFLAGS = -std=gnu99 -g -ggdb -Og -Wall -Wextra -pedantic
SRCTREE = $(shell find $(SRCDIR) -type d)
INCS = $(shell find $(INCDIR) -type f -name '*$(INCEXT)')
SRCS = $(shell find $(SRCDIR) -type f -name '*$(SRCEXT)')
OBJTREE = $(foreach D,$(SRCTREE),$(shell echo $(D) | sed 's/$(SRCDIR)/$(OBJDIR)/'))
OBJSTMP = $(foreach F,$(SRCS),$(shell echo $(F) | sed -e 's/$(SRCDIR)/$(OBJDIR)/'))
OBJS = $(foreach O,$(OBJSTMP),$(shell echo $(O) | sed -e 's/\$(SRCEXT)/\$(OBJEXT)/'))
all: $(TARGET)
@echo Done.
run: $(TARGET)
@./$(TARGET)
clean:
@rm -r $(TARGET) $(OBJS) $(OBJDIR) 2>/dev/null || true
$(TARGET): $(OBJS) | $(OBJDIR)
@$(LD) $(LDFLAGS) -L$(OBJDIR) -o $@ $^
$(OBJS): $(OBJDIR)/%$(OBJEXT) : $(SRCDIR)/%$(SRCEXT) | $(OBJDIR)
@$(CC) $(CCFLAGS) -I$(INCDIR) -c -o $@ $?
$(OBJDIR):
@mkdir -p $(OBJDIR) $(OBJTREE)
.PHONY: all run clean

7
input Normal file
View File

@ -0,0 +1,7 @@
6
1 2 3 4 5 6
4
1 3
2 4
4 4
1 6

98
main.c Normal file
View File

@ -0,0 +1,98 @@
/*
* Kolokwium: Algorytmy i Struktury Danych
*
* Zadanie: Pudełeczka
*
* Autor: Artur Tamborski
* Numer Indeksu: 449376
* Numer Grupy: 7
*/
#include <stdio.h>
int main(void)
{
/* zmienne chwilowe, tylko dla pętli */
int i, j;
/* zmienne wejściowe */
int num_pudelka;
int num_pytania;
int lewe, prawe;
int liczba_skarbow;
int pudelka[1000];
/* liczba pudełek */
scanf("%d", &num_pudelka);
/* sprawdzanie wartości */
if (num_pudelka < 1)
{
puts("Za mało pudełek!");
return -1;
}
if (num_pudelka > 1000)
{
puts("Za dużo pudełek!");
return -1;
}
/* ile skarbów jest w danym pudełku */
for (i = 0; i < num_pudelka; i++)
scanf("%d", &pudelka[i]);
/* liczba pytań Zosi */
scanf("%d", &num_pytania);
/* sprawdzanie wartości */
if (num_pytania < 1)
{
puts("Za mało pytań!");
return -1;
}
if (num_pytania > 1000)
{
puts("Za dużo pytań!");
return -1;
}
/* Zosia wskazuje pudelka */
/* a my jednoczesnie odpowiadamy */
for (i = 0; i < num_pytania; i++)
{
/* zeruję bo z każdym wskazaniem ta wartość jest inna */
liczba_skarbow = 0;
/* wczytaj wskazanie Zosi */
scanf("%d %d", &lewe, &prawe);
/* sprawdzanie wartości */
if (lewe < 1)
{
puts("pierwsze wskazanie jest za małe!");
return -1;
}
if (lewe > prawe)
{
puts("wskazanie jest niepoprawne!");
return -1;
}
if (prawe > num_pudelka)
{
puts("drugie wskazanie jest za duże!");
return -1;
}
/* - 1 bo zosia wskazuje indekując od jeden a
* tablice indeksowane od zera */
for (j = lewe - 1; j <= prawe - 1; j++)
liczba_skarbow += pudelka[j];
/* wyjście */
printf("%d\n", liczba_skarbow);
}
}