Премини към съдържанието

Препоръчан отговор


Зададен е едномерен масив от цели числа А0,А1,....А n-1. Да се състави програма, която създава нов масив а0,а1,....,аn-1, като стойността на аi е равна на най-малката цифра на Аi.В програвата да се използват динамични масиви.

 

 

Благодаря предварително!!:)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
#include <iostream>
using namespace std;

void create_array_from_last_digit(int* A, int* a, int n)
{
	int i;
	for (i = 0; i < n; i++)
	{
		a[i] = A[i] % 10;
	}
}


int main()
{
	int i;
	int* A;
	int* a;
	int n;
	cout << "Vavedete dalzhina na masiva -> ";
	cin >> n;
	A = new int[n];
	a = new int[n];
	cout << "\n\n";
	for (i = 0; i < n; i++)
	{
		cout << "vavedete A[" << i << "] -> ";
		cin >> A[i];
	}
	create_array_from_last_digit(A, a, n);
	cout << "\n\n";
	for (i = 0; i < n; i++)
	{
		cout << "a[" << i << "] = " << a[i] << "\n";
	}
	delete[] A;
	delete[] a;
	return 0;
}

 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

А ще можеш ли да кажеш как ще е ако е за най-голямата цифра на Ai

 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Тея даскали кога ще почнат да ви дават задачи с коректно написани условия?

Най-малката цифра какво би трябвало да значи - цифрата на единиците или най-малката от всички цифри на числото.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

 най-малката от всички цифри на числото  би трябвало да е 


Сподели този отговор


Линк към този отговор
Сподели в други сайтове
#include <iostream>
using namespace std;

int find_smallest_digit(int n)
{
	int digit = 10;
	int temp;
	while (n > 0)
	{
		temp = n % 10;
		n = n / 10;
		if (digit > temp) digit = temp;
	}
	return digit;
}

void create_array_from_smallest_digit(int* A, int* a, int n)
{
	int i;
	for (i = 0; i < n; i++)
	{
		a[i] = find_smallest_digit(A[i]);
	}
}


int main()
{
	int i;
	int* A;
	int* a;
	int n;
	cout << "Vavedete dalzhina na masiva -> ";
	cin >> n;
	A = new int[n];
	a = new int[n];
	cout << "\n\n";
	for (i = 0; i < n; i++)
	{
		cout << "vavedete A[" << i << "] -> ";
		cin >> A[i];
	}
	create_array_from_smallest_digit(A, a, n);
	cout << "\n\n";
	for (i = 0; i < n; i++)
	{
		cout << "a[" << i << "] = " << a[i] << "\n";
	}
	delete[] A;
	delete[] a;
	return 0;
}

 

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

Първия ми отговор е за цифрата на единиците, а втория за най малката цифра

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

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;

void printArray(int* arr,int arrSize){
    cout<<endl;
    cout<<"-----Start-----"<<endl;
    cout<<"---------------"<<endl;
    for(int i = 0;i<arrSize;i++){
        cout<< "arr["<<i<<"]="<<arr <<endl;
    }
    cout<<"---------------"<<endl;
    cout<<"------End------"<<endl;
    cout<<endl;
}

void initializeRandomArray(int* arr,int arrSize){
    srand (time(NULL));
    for(int i = 0;i<arrSize;i++){
        /*generate random number between 0 and 1,000,000*/
        arr= rand()%1000000 + 1;
    }
}
int getLowestDigit(int num){
    int lowestDigit=num%10;
    num/=10;
    while(num!=0){
        int nextDigit=num%10;
        if(nextDigit<lowestDigit){
            lowestDigit=nextDigit;
        }
        num/=10;
    }
    return lowestDigit;
}

int* buildNewArray(int* arr,int arrSize){
    int* newArray = new int[arrSize];
    for(int i = 0;i<arrSize;i++){
        newArray=getLowestDigit(arr);
    }
    return newArray;
}
int main()
{
    const int n =10;
    int* integerArray = new int[n];
    initializeRandomArray(integerArray,n);
    cout << "Array input:" << endl;
    printArray(integerArray,n);
    int *newArray = buildNewArray(integerArray,n);
    cout << "Array output:" << endl;
    printArray(newArray,n);

    /*cleaning the memory*/
    delete[] integerArray;
    delete[] newArray;

    return 0;
}
 

Ето едно и от мен да си имаш, колегата малко ме изпревари.

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

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Ако числото е 0 или отрицателно функцията ще върне ,че най-малката цифра е 10.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 38 минути, ined написа:

Ако числото е 0 или отрицателно функцията ще върне ,че най-малката цифра е 10.

#include <iostream>
#include <stdlib.h>
using namespace std;

int find_smallest_digit(int n)
{
	int digit = 10;
	int temp;
	n=abs(n);
	while (n > )
	{
		temp = n % 10;
		n = n / 10;
		if (digit > temp) digit = temp;
	}
	return digit;
}

 

while (n > )

Трябва да има 0 просто не знам защо форума го трие. Явно е по-запознат с програмирането

Редактирано от Zealar
Заради малумният форум как защо (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
int find_smallest_digit(int n)
{
    if (n<0) n=-n;
    int min=n%10;
    n /= 10;
    while (n)
    {
        int temp = n % 10;
        if (min>temp) min=temp;
        n /= 10;
    }
    return min;
}

 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 4 часа, Moni Slavova написа:

Зададен е едномерен масив от цели числа А0,А1,....А n-1. Да се състави програма, която създава нов масив а0,а1,....,аn-1, като стойността на аi е равна на най-малката цифра на Аi.В програвата да се използват динамични масиви.

 

 

Благодаря предварително!!:)

Нещо условието не ми е много ясно. Значи първо a1 взима най-маката цифра на A1, а за a2,3,4....?

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 11 минути, frozener написа:

Нещо условието не ми е много ясно. Значи първо a1 взима най-маката цифра на A1, а за a2,3,4....?

И двете са масиви. На съответните индекси голямо А отговарят същите индекси малко а.

 

Това се има предвид

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

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

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

  • Горещи теми в момента

  • Подобни теми

    • от Smile Box
      Здравейте моля ви за помощ опитвах няколко пъти но така и не успях да си направя задачата ето това е условието ако трябва ще платя. Благодаря предварително: 
      Даден е двумерен масив A с m реда и n стълба. Да се състави блок схема на алгоритъм, чрез който се създава нов масив b1, b2 ..., bn, като стойноста на bj е равна на средно аритметичното на отрицателните елементи в j -ия стълб. Да се състави програма по този алгоритъм.
    • от nisanx
      Здравейте!Трябва ми помощ направих две програми обаче незнам как да ги слея в 1 програма,по такъв начин че да не се промени нищо.И да ми изведе двете програми една под друга на команд пропта! Нов съм в програмирането затова ще се радвам ако ми помогнете да ги слея.
      #include <iostream>
      #include <stdlib.h>
      #include <time.h>
      using namespace std;
      #define N 30
      int A[N], n, i;
      void inputkeyboard()
      {
          do
       {
           cout<<"\n Razmer na masiva: ";
           cin>>n;
       }
       while (n<0 || n>N);
          for (i=0; i<n; i++)
          {
            cout<<"\n A["<<i+1<<"] = ";
            do
            {
              cin>>A;
            }
            while (A<100 || A>999);
          }
      }
      void inputrandom()
      {
          srand(time(0));
             do
       {
           cout<<"\n Razmer na masiva: ";
           cin>>n;
       }
       while (n<0 || n>N);
          for (i=0;i<n;i++)
          {
          A =100+rand()%900;
          }
          for (i=0;i<n;i++)
          {
              cout<<"\n A["<<i+1<<"] = "<<A;
          }
      }
      int main()
      {
          inputrandom();
          int P[10] = {};
          int p, max;
          
          for (i=0;i<n;i++)
          {
              P[A%10]++;
              p= A/10;
              P[p%10]++;
              P[p/10]++;
          }
         
          max = -1;
          for (i=0;i<10; i++) 
              if (P>max) 
                  max=P;
          
          for (i=0; i<10; i++)
              if (P==max) 
                  cout <<"\n Nai-chesto sreshtanata cifra e " << i << "  " << max << " broia\n";
                  
          system("pause");
          return 0;
      }
      //това е първата програмка//
       
      #include <iostream>
      using namespace std;
      int array[] = { 151,152,123,694,255,956,427,218,769,320 };
      int count = sizeof(array) / sizeof(int);
      int first(int an_array[],int  members)
      {
      int a, j, b, *T;
        
               T = new int [members];
               
               for (a = 0, j = 0; a < members; a++)
               {
                       b = an_array[a]; 
                       if (b % 2)
                              T[j++] = b;
               }
               for (a = 0; a < members; a++)
               {
                       b = an_array[a]; 
                       if (!(b % 2))
                              T[j++] = b;
               }
               cout << "\n\nIztinskiqt masiv e:\n"; 
               for (a=0;a<members; a++)
                       cout << an_array[a] << " ";
               cout << "\n\nV nachaloto sa nechetnite a sled tqh chetnite:\n"; 
               for (a=0;a<members;a++)
                       cout << T[a] << " ";
               
               cout << endl;
               delete [] T;
      }
      main()
      {
                first(array,count);
                         
                system("pause");
                return 0;
      } //а това е втората програмка//
      Благодаря ви предварително !!
       
       
    • от barry
      Здравейте,
      имам един масив от цели числа
      int a[] = {1, 2, 3, 4, 5, 6}; а израза
      (1 + 3)[a] - a[0] + (a + 1)[2] е равен на 8. По принцип i-тия елемент на масива е
      a[i] или *(a+i) но не разбирам другите две конструкции. Може ли някой да обясни как се изчисляват те?
      Благодаря предварително.
    • от HelloWorld
      Здравейте,
      Някой може ли да помогне с презаписването на масив в друг масив, т.е входните данни се записват в даден масив, но след това трябва да се прехвърлят на друг в отделна функция. 
    • от Aspire_bg
      Здравейте, някои може ли да ми помогне с откриването на грешките на тази задача?
      Задачата е следната:
      Програма с фунция main() чрез меню на функции за:
      1.Вивеждане от клавиатура на размерност (с проверка за коректност) и елементи на масив от цели числа K(L) (L<=30);
      2.Изчисляване на средно-аритметично от числата в масива, които се делят без остатък ;
      3.Изчисляване на сумата на различните от нула числа и броя на нулевите числа в масива;
      4.Намиране на максималното отрицателно число в масива и неговия пореден номер;
      5.Извеждане на екран на резултатите от съответното изчисляване, както и на въведените числа в масива (с подходящи текстове).
      #include<iostream>
      using namespace std;
      const int L=30;
      int F[L];
      int N;

      void input()
      {
      int i;
              do
              {
                      cout<<"Vavedete razmernost na masiva ne poveche ot 30"<<endl;
                      cin>>N;
              }
              while(N<1||N>30);
              for(i=0;i<N;N++);
              {
                      cout<<"Vavedete element na masiv"<<i+1<<endl;
                      cin>>F;
              }
          
      }
      void average() 
      {int sum; 
      int m,i; 
      int br=0; 
      for(i=0;i<N;i++) 
      m=F%6; 
      if(m==0); 
      sum+=F; 
      br++; 
      cout<<"Sredno aritmetichnoto na chislata v masiva koito se delqt bez ostatuk na 6"<<sum/br<<endl; 

      void sum0() 

      int i; 
      int sum; 
      int br=0; 
      for(i=0;i<N;i++); 
      if(F!=0) 
      sum+=F; 
      else 
      br++; 
      cout<<"Sumata na razlichnite chisla ot nula"<<sum<<endl; 
      cout<<"Broq na nulevite chisla v masiva e "<<br<<endl; 

      void maxn() 
      { double max; 
      int i; 
      int n; 
      for(i=0;i<N;i++); 
      if(F>0&&max>F); 
      {max=F; 
      n=i; 

      cout<<"Maximalnoto otricatelno chislo v masiva e"<<max<<endl; 
      cout<<"Poredniqt mu nomer e"<<n<<endl; 

      void menu()
      {
          int izbor;
          do{
              cout<<"1.Vavejdane na razmernost na masiva i negovite stoinosti"<<endl;
              cout<<"2.Izchislqvane na sredno aritmetichno ot chislata ,koito se delqt bez ostatuk na 6"<<endl;
              cout<<"3.Izchislqvane na sumata na razlichnite ot nula chislq i broq na nulevite chisla"<<endl;
              cout<<"4.Namirane na maksimalnoto polojitelno chislo i negoviqt poreden nomer"<<endl;
              cout<<"5.Krai na programata"<<endl;
              cin>>izbor;
              while((izbor<1)||(izbor>5))
              switch(izbor)
              {
                  case 1:
                   cout<<"Vavejdane na chisla:"<<endl;
                  input();
       
                  case 2:
                  cout<<"Sredno aritmetichno na chislata koito se delqt bez ostatuk na 6"<<endl;
                  average();
       
                  case 3:
                  cout<<"Sumata na razlichnite ot nula chislq i broq na nulite:"<<endl;
                  sum0();
       
                  case 4:cout<<"Maksimalnoto otricatelno chislo i negoviq nomer"<<endl;
                  maxn();
                  case 5: cout<<"Krai na programata"<<endl;
                  return;
       
              }
          }while(1);
      }
       
      void main()
      {
      menu();
      }
       
       
  • Дарение

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.