C/C++

Daniel.

Juventino per sempre
Член од
18 август 2009
Мислења
620
Поени од реакции
356
Најбитно е да кажеш што поточно сакаш да направиш( какви информации ќе превземаш и како ќе ги обработиш тие податоци, структура на страната итн доколку не е некој таен проект :) ) па според тоа да ти препорача некој framework или програмски јазик со кој што можеш да го направиш тоа полесно. Исто така можеш и да го тупиш до даска , да направиш нешто како поголемите компани што прават користејќи 2-3 програмски јазици секојза посебна намена ..и то.

Сакам да преземам текст податоци и потоа да ги сортирам и да ги испечатам како статистика во посебни групи. Само да автоматизирам процес да не морам сам да проверувам се посебно. Ќе пробам сега за сега со Python, кога ќе можам, не ми е некој голем приоритет, чисто ради забава и да поднаучам нешто плус а и, како што реков, да си скратам на работа.
Мислам дека нема да има потреба да го комликувам до толку. ;)
 
Член од
16 јануари 2011
Мислења
362
Поени од реакции
127
Ај ако може помош со задачиве:
1. Секунди да се претворат во Часови, минути и секунди. Значи рандом бројка од секунди да се претвори во часови минути и секунди.
2. Одредена сума на денари да се пресмета како збир од 5000, 1000, 500, 100, 50, 10, 5, 2, 1 денари така што ке се искористат најмал број на банкноти и монети.​
Ми треба за Ц-јазик во CodeBlocks. :)

 
Член од
8 октомври 2007
Мислења
4.680
Поени од реакции
8.511
Ај ако може помош со задачиве:
1. Секунди да се претворат во Часови, минути и секунди. Значи рандом бројка од секунди да се претвори во часови минути и секунди.
2. Одредена сума на денари да се пресмета како збир од 5000, 1000, 500, 100, 50, 10, 5, 2, 1 денари така што ке се искористат најмал број на банкноти и монети.
Ми треба за Ц-јазик во CodeBlocks. :)
1 нешто вака:
Код:
#include <stdio.h>

int main(int argc, char** argv) {
    printf("Vnesi go brojot na sekundi\n");
    int seconds;
    scanf("%d", &seconds);
    int s = seconds;
    int minutes = 0;
    int hours = 0;
    while (seconds >= 3600) {
        hours++;
        seconds -= 3600;
    }
    while (seconds >= 60) {
        minutes ++;
        seconds -= 60;
    }
    printf("%d seconds = %d hours, %d mins %d seconds", s, hours, minutes, seconds);
    return 0;
}
2. нешто вака
Код:
#include <stdio.h>

int main(int argc, char ** argv) {
    int apoeni[] = {5000, 1000, 500, 100, 50, 10, 5, 2, 1};
    int zastapenost[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
    printf("Vnesi ja vrednosta na sumata vo denari\n");
    int suma;
    scanf("%d", &suma);
    int s = suma;
    for (int i = 0; i < 9; i++) {
        while (suma >= apoeni[i]) {
            suma -= apoeni[i];
            zastapenost[i] += 1;
        }
    }
    printf("%d denari, mozat da se pretstavat kako: \n", s);
    for(int i = 0; i < 9; i++) {
        if (zastapenost[i] > 0) {
            printf("%d * %d denari\n", zastapenost[i], apoeni[i]);
        }
    }
    return 0;
}
--- надополнето: 16 октомври 2013 во 01:39 ---
Ако сум заебал некаде се извинувам, касно е јеби га :)
 
Член од
16 јануари 2011
Мислења
362
Поени од реакции
127
1 нешто вака:
Код:
#include <stdio.h>
 
int main(int argc, char** argv) {
    printf("Vnesi go brojot na sekundi\n");
    int seconds;
    scanf("%d", &seconds);
    int s = seconds;
    int minutes = 0;
    int hours = 0;
    while (seconds >= 3600) {
        hours++;
        seconds -= 3600;
    }
    while (seconds >= 60) {
        minutes ++;
        seconds -= 60;
    }
    printf("%d seconds = %d hours, %d mins %d seconds", s, hours, minutes, seconds);
    return 0;
}
2. нешто вака
Код:
#include <stdio.h>
 
int main(int argc, char ** argv) {
    int apoeni[] = {5000, 1000, 500, 100, 50, 10, 5, 2, 1};
    int zastapenost[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
    printf("Vnesi ja vrednosta na sumata vo denari\n");
    int suma;
    scanf("%d", &suma);
    int s = suma;
    for (int i = 0; i < 9; i++) {
        while (suma >= apoeni[i]) {
            suma -= apoeni[i];
            zastapenost[i] += 1;
        }
    }
    printf("%d denari, mozat da se pretstavat kako: \n", s);
    for(int i = 0; i < 9; i++) {
        if (zastapenost[i] > 0) {
            printf("%d * %d denari\n", zastapenost[i], apoeni[i]);
        }
    }
    return 0;
}
--- надополнето: 16 октомври 2013 во 01:39 ---
Ако сум заебал некаде се извинувам, касно е јеби га :)
Фала многу :) , а има ли некој начин да се решат без користење на if/else/while/for.. ?
 

Jax Rebel

Navajo Rider
Член од
6 јули 2008
Мислења
5.255
Поени од реакции
2.241
Фала многу :) , а има ли некој начин да се решат без користење на if/else/while/for.. ?

Mоже, со делење и модул. Еве ја првата:
Код:
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char** argv)
{
    printf("Vnesi go brojot na sekundi\n");
    int seconds;
    scanf("%d", &seconds);
    int s = seconds;
    int hours = s/3600;
    s = s%3600;
    int minutes = s/60;
    s = s%60;
    printf("%d seconds = %d hours, %d mins %d seconds", seconds, hours, minutes, s);
    return 0;
}
 

Cataclysm

Член од
2 февруари 2009
Мислења
223
Поени од реакции
647
Ај ако може помош со задачиве:
1. Секунди да се претворат во Часови, минути и секунди. Значи рандом бројка од секунди да се претвори во часови минути и секунди.
2. Одредена сума на денари да се пресмета како збир од 5000, 1000, 500, 100, 50, 10, 5, 2, 1 денари така што ке се искористат најмал број на банкноти и монети.
Ми треба за Ц-јазик во CodeBlocks. :)

структурно, а :D ?
инаку втората треба без for da се реши, еве мој метод:

Код:
#include <stdio.h>
 
int main () {
int a5000, a1000, a500, a100, a50, a10, a5, a2, a1, vlez;
printf("Vnesi suma vo denari:\n");
scanf("%d", &vlez);
a5000 = vlez / 5000;
a1000 = (vlez % 5000) / 1000;
a500 = (vlez % 1000) / 500;
a100 = (vlez % 500) / 100;
a50 = (vlez % 100) / 50;
a10 = (vlez % 50) / 10;
a5 = (vlez % 10) / 5 ;
a2 = (vlez % 5) / 2;
a1 = (vlez % 2);
 
printf("%d * 5000\n", a5000);
printf("%d * 1000\n", a1000);
printf("%d * 500\n", a500);
printf("%d * 100\n", a100);
printf("%d * 50\n", a50);
printf("%d * 10\n", a10);
printf("%d * 5\n", a5);
printf("%d * 2\n", a2);
printf("%d * 1\n", a1);
 
 
/* Kraj na kodot */
return 0;
}
 

Донев

★★
Член од
9 мај 2008
Мислења
35.547
Поени од реакции
52.340
Ај малце помош. Задачата е да се спојат две еднострано поврзани листи, но притоа да не се додаваат дупли елементи. На пример од 2, 3, 5 и 1, 3 да се добие 1, 2, 3, 5.
Е сега јас имам идеја како ама никако да го напишам тоа што го имам замислено. Еве

PHP:
node * joinLists (node *l1, node *l2)
{
    // Vasiot kod tuka...
    node *r, *s;
    if((l1 == NULL) || (l2 == NULL))
        return NULL;
    if(l1 -> info < l2 -> info) {
        s = r = l1;
        l1 = l1 -> link;
    }
    else {
        s = r = l2;
        l2 = l2 -> link;
    }
    while(l1 !=NULL && l2 != NULL) {
        if(l1 -> info < l2 -> info) {
            r -> link = l1;
            r = l1;
            l1 = l1 -> link;
        }
        else if(l1 -> info > l2 -> info) {
            r -> link = l2;
            r = l2;
            l2 = l2 -> link;
        }
        else {
            //овде нели ќе оди кога двата елементи ќе бидат исти, само не знам што наредби да внесам...
        } 
    }
 

Xibalba

Corona Australis
Член од
24 јануари 2012
Мислења
6.069
Поени од реакции
11.434
//овде нели ќе оди кога двата елементи ќе бидат исти, само не знам што наредби да внесам...
Не ти треба овој дел, само стави во првиот if помало или еднакво.
Тоа ќе значи дека во случај на еднакво ќе земаш елемент од првата низа, што е сосема во ред бидејќи вредноста е иста па сеедно е дали е од првата или втората низа.
 

Донев

★★
Член од
9 мај 2008
Мислења
35.547
Поени од реакции
52.340
Не ти треба овој дел, само стави во првиот if помало или еднакво.
Тоа ќе значи дека во случај на еднакво ќе земаш елемент од првата низа, што е сосема во ред бидејќи вредноста е иста па сеедно е дали е од првата или втората низа.
Ама така ете ако е првата листа 2, 3, 5, а втората 3 и сега кај 3 и 3 ќе го пише ова првово од првата листа и ке отиде на 5 и после ќе ги спореди 5 и 3 и пак ќе го пише и второто 3...
 

Eva Molotow

Anti-social Engineer
Член од
6 јуни 2008
Мислења
532
Поени од реакции
392
Ама така ете ако е првата листа 2, 3, 5, а втората 3 и сега кај 3 и 3 ќе го пише ова првово од првата листа и ке отиде на 5 и после ќе ги спореди 5 и 3 и пак ќе го пише и второто 3...
Ај ако не те мрзи стај ги тука тест примерите да видиме на кој пример ти паѓа, полесно е за дебагирање. :)
 

Донев

★★
Член од
9 мај 2008
Мислења
35.547
Поени од реакции
52.340
Ај ако не те мрзи стај ги тука тест примерите да видиме на кој пример ти паѓа, полесно е за дебагирање. :)
Со ова:
PHP:
node * joinLists (node *l1, node *l2)
{
    // Vasiot kod tuka...
    node *r, *s;
    if((l1 == NULL) || (l2 == NULL))
        return NULL;
    if(l1 -> info < l2 -> info) {
        s = r = l1;
        l1 = l1 -> link;
    }
    else {
        s = r = l2;
        l2 = l2 -> link;
    }
    while(l1 !=NULL&&l2 != NULL) {
        if(l1 -> info <= l2 -> info) {
            r -> link = l1;
            r = l1;
            l1 = l1 -> link;
            l2 = l2 -> link;
        }
        else if(l1 -> info > l2 -> info) {
            r -> link = l2;
            r = l2;
            l2 = l2 -> link;
        }
 
    }
    if(l1 != NULL) r -> link = l1;
    else r -> link = l2;
    return(s);
}
test1.jpg
test2.jpg

Првиот и третиот ред се бројот на елементи во листата.
 
M

Mr.InF3ction

Гостин
Што по приватна порака, пишете тука каде e проблемот и други да научат нешто :)
 
Член од
11 септември 2013
Мислења
33
Поени од реакции
17
Со ова:
PHP:
node * joinLists (node *l1, node *l2)
{
    // Vasiot kod tuka...
    node *r, *s;
    if((l1 == NULL) || (l2 == NULL))
        return NULL;
    if(l1 -> info < l2 -> info) {
        s = r = l1;
        l1 = l1 -> link;
    }
    else {
        s = r = l2;
        l2 = l2 -> link;
    }
    while(l1 !=NULL&&l2 != NULL) {
        if(l1 -> info <= l2 -> info) {
            r -> link = l1;
            r = l1;
            l1 = l1 -> link;
            l2 = l2 -> link;
        }
        else if(l1 -> info > l2 -> info) {
            r -> link = l2;
            r = l2;
            l2 = l2 -> link;
        }
 
    }
    if(l1 != NULL) r -> link = l1;
    else r -> link = l2;
    return(s);
}
Прегледај го приврзокот 74751
Прегледај го приврзокот 74752

Првиот и третиот ред се бројот на елементи во листата.
probaj so ova, probav za 2-3 test primeri tocna beshe
Код:
#include "stdafx.h"
#include <iostream>
 
struct node {
    node * pNext;
    int data;
};
 
node ** join(node * left, node * right)
{
    if( left == nullptr) return &right;
    if( right == nullptr) return &left;
 
    node ** result = nullptr, ** start = nullptr;
    while(left != nullptr && right != nullptr)
    {
        bool both = false;
        node ** min = nullptr;
        if(left->data < right->data) min = &left;
        if(left->data > right->data) min = &right;
        if(min == nullptr) {
            min = &left;
            both = true;
        }
 
        if( result ) {
            if( (*result)->data != (*min)->data ) {
                (*result)->pNext = new node;
                result = &( (*result)->pNext );
                (*result)->data = (*min)->data;
                (*result)->pNext = nullptr;
            }
        }
        else {
            result = new node*;
            start = result;
            (*result) = new node;
            (*result)->data = (*min)->data;
            (*result)->pNext = nullptr;
        }
        if(!both) *min = (*min)->pNext; else {left = left->pNext; right=right->pNext;}
    }
    node * rem = nullptr;
    if(right == nullptr && left)
    {
        rem = left;
    }
    if(left == nullptr && right)
    {
        rem = right;
    }
    while(rem) {
        if( (*result)->data != rem->data ) {
            (*result)->pNext = new node;
            result = &( (*result)->pNext );
            (*result)->data = rem->data;
            (*result)->pNext = nullptr;
        }
        rem = rem->pNext;
    }
 
    return start;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    node n1, n2, n3, n4, n5, n6, n7;
    node m1, m2, m3, m4, m5, m6, m7;
 
    n1.data = 2;
    n1.pNext = &n2;
    n2.data = 4;
    n2.pNext = &n3;
    n3.data = 6;
    n3.pNext = &n4;
    n4.data = 8;
    n4.pNext = nullptr;
    n5.data = 0;
    n5.pNext = &n6;
    n6.data = 0;
    n6.pNext = nullptr;
    n7.data = 0;
    n7.pNext = nullptr;
 
    m1.data = 1;
    m1.pNext = &m2;
    m2.data = 3;
    m2.pNext = &m3;
    m3.data = 5;
    m3.pNext = &m4;
    m4.data = 7;
    m4.pNext = &m5;
    m5.data = 9;
    m5.pNext = nullptr;
    m6.data = 0;
    m6.pNext = nullptr;
    m7.data = 0;
    m7.pNext = nullptr;
 
 
    node ** r = join(&n1, &m1);
    node * curr = *r;
    while(curr)
    {
        std::cout << curr->data << " ";
        curr = curr->pNext;
    }
    int d; std::cin >> d;
    return 0;
}
 

/МIRЧ3_МкД\

Временски патник
Член од
7 март 2012
Мислења
380
Поени од реакции
102
Код:
poc1=p;
while(p!=NULL){
if(p->info==((p->link)->info)){
d=p->link;
p->link=d->link;
free(d->link);
}
else {p=p->link;}
 
}//gi briseme duplikatite od p listata
p=poc1;
Зошто циклусот постојано кружи? иначе алгоритмот би требало да ги брише сите дупликати од листата.. poc1,p и d се пок ?
 

Kajgana Shop

На врв Bottom