Follow along with the video below to see how to install our site as a web app on your home screen.
Забелешка: This feature may not be available in some browsers.
Кажи за која задача, некои ги имам решавано и еве го кодот ако ти го затреба. Ако му текне на некој поедноставно решение нека го постирапо грешка го ставив тука постот ама сепак фала за решението , дан имаш и некои други решенија на задачи ?
#include <stdio.h>
void print(int a, int b)
{
int i=1;
while (i <= a)
{
printf(" ");
i++;
}
i = 1;
while (i <= b)
{
printf("*");
i++;
}
}
int main(void)
{
int row, n, space, asterix, mid, newline;
scanf("%d", &n);
space = n - 1;
asterix = 1;
mid = 0;
newline = 0;
row = 0;
while (row < (2*n-1))
{
if (newline)
printf("\n");
print(space, asterix);
if (!mid)
{
space--;
asterix += 2;
row++;
if (asterix == (2*n-1))
mid = 1;
}
else
{
space++;
asterix -= 2;
row++;
}
newline = 1;
}
}
Ако му текне на некој поедноставно решение нека го постира
Да се напише програма со која се печати дијамант од ѕвездички (*). . .
void Print_Diamond(int n)
{
for(int i = 0; i < 2*n-1; i++)
{
for(int j = 0; j < 2*n - 1; j++)
{
if( i <= n-1 && j >= n-1 && (j - i <= n - 1) )
printf("*");
else if( i <= n-1 && j < n-1 && (i + j >= n - 1) )
printf("*");
else if( i > n-1 && j < n - 1 && (i - j <= n - 1) )
printf("*");
else if( i > n-1 && j >= n-1 && (i + j <= 3*(n-1)) )
printf("*");
else
printf(" ");
}
printf("\n");
}
}
За претходната задача pemperle никаде не дефиира матрица, а не можеш да ја компајлираш затоа што не се дефинирани променливи и фали библиотека и внесување на променливи, моето решение може и без функција да се направи, само вака беше попрегледно и затоа е со функција. Еве ти трето решение само со фор циклусиOvaa zadaca bi trebelo da se resi samo so if else i ciklusi , bez funkcii i matrici , zosto go nemame uceno toa a ovaa zadaca e na lab. vezbi pod tema ciklusi.
pemperle go ima resenieto mislam ama zosto ne mi funkcionira koga ke napravam copy paste na kodot mi javuva greska vo 3 red.
Treba da se dopolni kodot so nesto ili jas gresam nekade ?
--- надополнето: 21 октомври 2012 во 13:38 ---
Исто така следните 3 задачи се под категоријата циклуси,
Ако некој може да ги реши без функции и матрици или да даде концепт тоа би било супер.
Пробав да ги решам но циклусиве се накако потешки за мене.
Нормално е тоа или ми треба време и искуство?
Задачи:
1. Да се напише програма која го наоѓа најголемиот заеднички делител (НЗД) на два броја. Броевите се читаат од тастатура.
Пр. a = 100, b = 584 NZD(a,b) = 4
2. Да се напише програма која ќе ги отпечати сите прости броеви од даден опсег (почетокот и крајот на опсегот се внесуваат од тастатура) кои се составени само од непарни цифри. На крајот да се испечати бројот на прости броеви кои го задоволуваат условот (за еден број велиме дека е прост доколку има точно два (различни) делители (1 и самиот тој број)).
3. Да се напише програма со која се вчитуваат N броеви од тастатура. За секој од броевите се печатат бројот на трансформации после кои оригиналниот број станува едноцифрен, како и новодобиениот трансформиран број. Со секоја трансформација на оригиналниот број, тој се заменува со збирот на неговите цифри.
Пр. 712 -> 10 -> 1
Broj na transformacii: 3, tranformiran broj: 1.
#include <stdio.h>
int main() {
int num1 , num2, tmp, i, nzd=1;
scanf("%d %d", &num1, &num2);
if(num1 < num2) {tmp = num1; num1 = num2; num2 = tmp;}
for(i=1; i<= num2; i++) {
if((num1 % i == 0) && (num2 % i == 0)) nzd = i;
}
printf("%d", nzd);
return 0;
}
#include <stdio.h>
int main() {
int start ,end, tmp, i, prost=0, pecati=0, j, cifra;
scanf("%d %d", &start, &end);
for(i=start; i<= end; i++)
{
prost = 1; pecati = 1; tmp=i;
for(j=2; j <= i/2; j++)
{
if(i % j == 0) { /*printf("%d ne e prost\n", i); */ prost = 0; break;}
}
if(prost != 0)
{
/*printf("%d se testira za cifri\n", i); */
while(tmp>0)
{
cifra = tmp % 10;
tmp /= 10;
if(cifra % 2 == 0) { /* printf("%d e prost no ne treba da se pecati\n", i); */ pecati = 0; break; }
}
if(pecati != 0) printf("%d\n", i);
}
}
return 0;
}
#include <stdio.h>
int main() {
int num, tran = 1, tmp, sum = 0;
scanf("%d", &num);
while (num >= 10)
{
tmp = num;
sum = 0;
while(tmp > 0)
{
sum = sum + (tmp % 10);
tmp /= 10;
}
num = sum;
tran++;
}
printf("Posle %d transformacii brojot e %d", tran, num);
return 0;
}
O
pemperle go ima resenieto mislam ama zosto ne mi funkcionira koga ke napravam copy paste na kodot mi javuva greska vo 3 red.
#include <stdio.h>
int main(void)
{
int n, i, j;
printf("Razmer: ");
scanf("%d",&n);
for(i = 0; i < 2*n-1; i++)
{
for(j = 0; j < 2*n - 1; j++)
{
if( i <= n-1 && j >= n-1 && (j - i <= n - 1) )
printf("*");
else if( i <= n-1 && j < n-1 && (i + j >= n - 1) )
printf("*");
else if( i > n-1 && j < n - 1 && (i - j <= n - 1) )
printf("*");
else if( i > n-1 && j >= n-1 && (i + j <= 3*(n-1)) )
printf("*");
else
printf(" ");
}
printf("\n");
}
printf("\n\n");
}
Оваа задача вака напишана во codeblocks ми јавува warning дека има "too many arguments to format", и кога ќе ја извршам не ми го печати резултатот.Прва задача:
Код:#include <stdio.h> int main() { int num1 , num2, tmp, i, nzd=1; scanf("%d %d", &num1, &num2); if(num1 < num2) {tmp = num1; num1 = num2; num2 = tmp;} for(i=1; i<= num2; i++) { if((num1 % i == 0) && (num2 % i == 0)) nzd = i; } printf("%d", nzd); return 0; }
#include <stdio.h>
int main()
{
int a,b,c;
scanf("%d %d", &a,&b);
while(1)
{
c=a%b;
if(c==0)
return b;
a=b;
b=c;
}
}
Имаш грешка во твојот код, маин функција треба да враќа 0 или ништо да не враќа. Инаку мојот код функцинира во компајлер, а и твојот кога ке се поправи функцинира.Код:#include <stdio.h> int main() { int a,b,c; scanf("%d %d", &a,&b); while(1) { c=a%b; if(c==0) break; a=b; b=c; } printf("NZD: %d", b); }
Измена: проверив на онлајн компајлер немам никаков проблем. Некоја идеја како да го решам ова со codeblocks. Како default компајлер ми е ставен GNU GCC compiler.
Ке ти пројде на некои примери, а некои ке ти падне, бидејќи никаде не е наведено трицифрен број, не е целосно тоа решение. Треба да размислуваш глобално како да ги опфатиш сите броеви, а не само трицифрени. Ја имам и таа решено, ке ја ставам ако заглавиш ама пробај прво сам да ја решиш. Еве ти идејаДали за оваа задача :
Да се напише програма која од тастатура ќе прочита еден природен број n, и на екран ќе го испечати најмалиот „среќен“ број кој што e поголем од n. За еден природен број велиме дека е „среќен“ ако тој содржи само „среќни“ цифри (цифрите 7 и 9).
Пример: Влез: 789 Излез: 797
Ова е правилно решение или ако треба подобро(поправилно) да се реши нека каже некој поискусен.
Исто така. како би се решила задачава за броеви од 10 до 1 000 000 на пример без да ги бaраш кои се цифрите од внесениот број.
Јас ја решив за 3-цифрени само а во задачава не е наведено тоа . ако не е само за 3-цифрени тогаш не знам како би ја решил.Имате некоја идеја?
Некој решение на следниве задачи, Благодарам
#include <iostream>
using namespace std;
double loop(double guess, double x)
{
if(abs(guess * guess - x) < 0.001)
return guess;
else
return loop( ( guess + x/guess)/2, x);
}
double root(double n)
{
return loop(1, n);
}
int main(void)
{
double n;
cin >> n;
cout << "Reshenje " << root(n) << endl;
}
Нешто да не имаш згрешено во условот, како да ми се гледаат многу променливи што се преклопуваат и плус алгоритамот за корен јас го знам малку по различно. Ќе ти го напишам кодот за првата, како што мислам дека треба, па ако треба, измени го.
Код:#include <iostream> using namespace std; double loop(double guess, double x) { if(abs(guess * guess - x) < 0.001) return guess; else return loop( ( guess + x/guess)/2, x); } double root(double n) { return loop(1, n); } int main(void) { double n; cin >> n; cout << "Reshenje " << root(n) << endl; }
Ако треба коефициентот на точност да се внесе од тастатура, ќе треба да го зададеш како параметар и во двете функции, и тоа ќе ти е бројот што ќе стои на местото на 0.001 во условот во функцијата loop. А за почетната вредност на b, (тука го напишав guess за прегледност), по добро да почнеш со некоја константа (алгоритамот ќе работи со секој позитивен број) за да се знае дека вредноста нема никаква врска со променливите или влез од тастатура.
Ке ти пројде на некои примери, а некои ке ти падне, бидејќи никаде не е наведено трицифрен број, не е целосно тоа решение. Треба да размислуваш глобално како да ги опфатиш сите броеви, а не само трицифрени. Ја имам и таа решено, ке ја ставам ако заглавиш ама пробај прво сам да ја решиш. Еве ти идеја
Стави еден while циклус кој ке ги проверува сите броеви, почнувајќи од внесениот. И во него уште еден while циклус кој ке ги проверува цифрите на секој број, ако најде барем една цифра што не е 7 или 9 нека прекине, и нека оди на наредниот број...
#include <stdio.h>
int main()
{
int n,i,cifra,max;
scanf("%d",&n);
while (n<1000)
{
i=n;
while (i>0)
{
cifra= i%10;
if (cifra != 7 || cifra != 9 )
{
max=0;
break;
}
if (cifra== 7 || cifra== 9 )
{
max=1;
}
i/=10;
}
if (max == 1){
printf("%d\n",n);
break;
}
n++;
}
getch();
}