Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Делител на 3 числа.

Featured Replies

#include<stdio.h>void input(int*a);int ND(int b);void main(void){	 int a,b,c,sum=0;	 input(&a);	 input(&b);	 input(&c);	 sum=a+b+c;	 printf("%d",ND(a));	 printf("%d",ND(b));	 printf("%d",ND(c));	 printf("%d",sum);	 }	 int ND(int a)	 {		 int x=a/2;		 for(;x>0;x--)		 {					  if(a%x==0)					  {							    return x;							    }		 }		 return 1;	 }	 void input(int*a)	 {		  do		  {					  printf("n=");					  scanf("%d",a);					  }					  while(*a <=0 || *a>=100);					  getchar ();					  } 

Ако може малко да помогнете ето ми ги и следните проблеми.Компилатора ми е DEV C++ и принципно,като напиша

getchar();
на края трябва да ми го задържа на екрана,но сега нещо не се получа.А това,което трябва да прави е потребителя,след като въведе 3 числа,които да са в диапазона от 0 до 100,да намери най-големия делител на всяко от числата и сумата им,но то ми изкарва някакви не реални суми и делители.А ако числата не са в диапазона да опитаме отново да въведем.БЛАГОДАРЯ ВИ много!

Ако не греша, в последният цикъл getchar() ще сработи само ако си въвел число извън интервала 1-99 . Такава ли ти е идеята?

И не си ли учил алгоритъма за намиране на НОД? :) 

 

input a;

Input b;

while not(a=b)

   If  a>b  a:=a-b;

   if  a<b  b:=b-a;

end.

printf a.

 

Само си оправи синтаксиса, че тези неща съм ги правил преди 25 години, и си ги спомням много смътно ...

  • Автор

Ако не греша, в последният цикъл getchar() ще сработи само ако си въвел число извън интервала 1-99 . Такава ли ти е идеята?

И не си ли учил алгоритъма за намиране на НОД? :)

 

input a;

Input b;

while not(a=b)

   If  a>b  a:=a-b;

   if  a<b  b:=b-a;

end.

printf a.

 

Само си оправи синтаксиса, че тези неща съм ги правил преди 25 години, и си ги спомням много смътно ...

Не,не идеята ми е,че понеже тоя компилатор е малко бъгав и с

getchar
тоест го използвам,за да ми се задържа екрана щото иначе веднага се затваря .

Айде сега, компилатора бил бъгъв, като ползваш не която трябва функция и не където трябва.

#include<stdio.h>void input(int*a);int ND(int b);int main(void){     int a,b,c,sum;     input(&a);     input(&b);     input(&c);     sum=a+b+c;     printf("%d ",ND(a));     printf("%d ",ND(b));     printf("%d ",ND(c));     printf("%d",sum);     getch();}     int ND(int a){     int x=a/2;     for(;x>0;x--)         if(a%x==0) return x;}void input(int*a){     do {         printf("n=");         scanf("%d",a);     } while(*a <=0 || *a>=100);} 

Редактирано от ined (преглед на промените)

Само си оправи синтаксиса, че тези неща съм ги правил преди 25 години, и си ги спомням много смътно ...

Позабравил си и алгоритъма. Трябва да е остатък, а не изваждане. След което трябва да се проверява, да не станат a или b нула, че делението е противопоказно :P. Само че, като гледам, тука не се търси най-големия делител на 3 числа, а най-големите делители на всяко от числата.

Ако не греша, в последният цикъл getchar() ще сработи само ако си въвел число извън интервала 1-99 .

Цикълът не обхваща getchar, така че няма проблеми за това. Обаче така, като чета, се чудя, що е накрая на функцият input, а не накрая на main. Така ще се извика 3 пъти, когато не трябва, но не и баш когато трябва :P

Само че, като гледам, тука не се търси най-големия делител на 3 числа, а най-големите делители на всяко от числата.

 

Прав си, аз не съм прочел както трябва :go ahead: . Помислих, че става дума за намиране на най-големия общ делител.

  • Автор

 

Айде сега, компилатора бил бъгъв, като ползваш не която трябва функция и не където трябва.

#include<stdio.h>void input(int*a);int ND(int b);int main(void){     int a,b,c,sum;     input(&a);     input(&b);     input(&c);     sum=a+b+c;     printf("%d ",ND(a));     printf("%d ",ND(b));     printf("%d ",ND(c));     printf("%d",sum);     getch();}     int ND(int a){     int x=a/2;     for(;x>0;x--)         if(a%x==0) return x;}void input(int*a){     do {         printf("n=");         scanf("%d",a);     } while(*a <=0 || *a>=100);} 

Много ти благодаря,а и на другите също за указаната помощ.

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    32%
    Дарени 315 € от нужните 1 000 €

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.