T
TheThinker
Гостин
http://pastebin.com/KERFpDkj плусчето пред еднаквото е вишок ![Насмевка :) :)](/styles/default/xenforo/smilies/smile.png)
![Насмевка :) :)](/styles/default/xenforo/smilies/smile.png)
#include<stdio.h>
int main()
{
int i=1000;
int prva,vtora,treta,cetvrta;
int suma=0;
{
while(i<=9999)
{
prva=i/1000;//Prvata e najznacajna cifra, kako ide natamu imaa sve pomala vaznost
vtora=(i/100)%10;
treta=(i/10)%10;
cetvrta=(i%10);
if(prva==vtora+treta+cetvrta)
{
printf("%d ", i);
suma=suma+i;
if(i != 9900)
printf(" + ");
else
break;
}
i++;
}
}
printf(" = %d\n\n", suma);
return 0;
}
while по принцип се користи за да стигнеш до некој определен елемент, а иначе реализацијата треба да ти биде како што ти кажа Mr.InF3ction, со два покажувачи.Е сеа знам да си поставам покажувач кон првиот,ама за последниот направив while(se dodeka v->link !=null) и тука ми заглавува.
За ова помош ако може ?
Постни ја цела класа да ја видиме, па ќе видиме. Иначе пробај со v->link->link !=NULL на тоа место.Е сеа знам да си поставам покажувач кон првиот,ама за последниот направив while(se dodeka v->link !=null) и тука ми заглавува.
За ова помош ако може ?
Епа задачава при секое извршување дава ист резултат така да можеш слободно да ставиш ова :
И ќе работи ок.PHP:#include<stdio.h> int main() { int i=1000; int prva,vtora,treta,cetvrta; int suma=0; { while(i<=9999) { prva=i/1000;//Prvata e najznacajna cifra, kako ide natamu imaa sve pomala vaznost vtora=(i/100)%10; treta=(i/10)%10; cetvrta=(i%10); if(prva==vtora+treta+cetvrta) { printf("%d ", i); suma=suma+i; if(i != 9900) printf(" + "); else break; } i++; } } printf(" = %d\n\n", suma); return 0; }
Иначе со заградите имаше мала грешка си ставил ако условот е исполнет само да го печати бројот..а во сумата уствари додаваат сите бројки од 1000 до 9999
#include<stdio.h>
#include<malloc.h>
typedef struct element{
int info;
struct element *llink, *rlink;
}node;
node * novaDvojna()
{
node *v = (node *)malloc(sizeof(node));
v -> llink = v;
v -> rlink = v;
return v;
}
void dodadi(node **pok_v, int broj){
node *temp;
temp=(node *)malloc(sizeof(node));
temp->info=broj;
temp -> llink = (*pok_v) -> llink;
temp -> rlink = *pok_v;
(*pok_v) -> llink -> rlink = temp;
(*pok_v) -> llink = temp;
}
int isItPalindrome(node *v,int n)
{
node *p,*q;
int b,brojac=0,i;
p=v;
q=v;
b=n/2;
while(q->rlink->rlink!=NULL)
{
q=q->rlink;
}
for(i=0;i<b;i++)
{
if(p->info==q->info)
{
p=p->rlink;
q=q->llink;
brojac++;
}
}
if(brojac==b)
return 1;
else return -1;
}
int main(){
node *lista=NULL, *l1=NULL, *l2=NULL;
int i,n,info;
lista=novaDvojna();
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf ("%d", &info);
dodadi(&lista,info);
}
int rez = isItPalindrome(lista,n) ;
printf("\n%d",rez);
return 0;
}
#include<stdio.h>
int main()
{
int i=1000;
int prva,vtora,treta,cetvrta;
int flag = 0;
int suma=1;
{
while(i<=9999)
{
prva=i/1000;//Prvata e najznacajna cifra, kako ide natamu imaa sve pomala vaznost
vtora=(i/100)%10;
treta=(i/10)%10;
cetvrta=(i%10);
if(prva==vtora+treta+cetvrta)
{
if(flag)
printf(" + ");
suma=suma+i;
flag = 1;
printf("%d ", i);
}
i++;
}
}
printf(" = %d\n\n", suma);
return 0;
}
int isItPalindrome(node *v,int n)
{
node *kraj = v->llink; // pokazuva na krajot
v = v->rlink; // ides na sledniot element bidejki prviot e vodic i info poleto e random glupost
while( v != kraj){ // inaku ova ne znaci deka ka ja iterira do kraj,,tuku ednata pocnuva od levno, drugata od desno..i ke vrti se dodeka ne dojdat na sredina vo ist poziacija
if(v->info != kraj->info)
return -1;
v = v->rlink;
kraj = kraj->llink;
}
return 1;
}
Ајде програмеришта
Од четири цели броеви кои се читаат од СВ да се отпечати бројот со максимална вредност. Задачата да се реши со помош на if наредбата.
Да се напише програма која од непознат број на цели броеви кои се вчитуваат од СВ ќе го отпечати последно внесениот трицифрен парен број.
Од СВ се вчитуваат n цели броеви и еден број m во опсегот од 0 до 9. Да се напише програма, која од n-те броеви внесени од тастатура ќе го исфрли бројот m и ќе испечати колку вкупно пати тој е исфрлен.
#include <stdio.h>
#include <stdlib.h>
#define MAX_INTS 4
int main()
{
int min = INT_MAX;
int max = INT_MIN;
int a[MAX_INTS];
int i;
for (i = 0; i < MAX_INTS; i++)
{
printf( "Vnesi broj %d od %d : ", (i + 1), MAX_INTS);
scanf( "%d", &a );
if ( a < min) min = a;
if ( a > max) max = a;
}
printf("%d Najmal e \n", min);
printf("%d Najgolem e \n", max);
return 0;
}
По дефиниција листите не се кружни. Често во задачи се бара ти да ги направиш да бидат кружни така да кодот од Mr. Infection ќе ти користи за понатаму. Али по дефолт првиот покажувач иде на првиот елемент, а вториот иде на последниот елемент кој ќе го најдеш така што ќе ја изминеш цела листа со for циклус (ова е глупото кај листи). И тоа е тоа.фала многу.Инаку мислев дека секоја двојно поврзана листа не е кружна,и дека левиот и десниот линк од последните јазли покажуваат кон NULL.