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

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


Зададен е едномерен масив от цели числа А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;
}

 

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


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

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

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

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


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

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


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


Линк към този отговор
Сподели в други сайтове
#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 потребители

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

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

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

    • от 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();
      }
       
       
    • от 87975865869
      Цяла седмица се опитвам да си завърша курсовата задача по програмиране. Последния срок е утре до 17:00 а съм до никъде. Надробих някакви простотии но не вярвам да ми донесат каквото и да е... Бих бил много благодарен на всякаква помощ.

      Ето го и условието:
      Съставете програма с функция main() и избор чрез меню на функции за:
      - въвеждане от клавиатура данните на К студента (К<=25) от група: фак.номер, оценки по 4 дисциплини от зимен семестър, възраст и съхраняването им в масив GR(25,6) като (GR(I,0) - за фак. номер, (GR(I,1) до (GR(I,4) - за оценка, (GR(I,5) за възраст.
      - изчисляване и извеждане на среден успех по избрана дисциплина; 
      - изчисляване и извеждане на среден успех на студент по зададен фак. номер;
      - намиране и извеждане на броя на студентите над зададена възраст
      - извеждане на екран съдържанието на масива със съответни текст и формати. 

      Когато видите състоянието на кода ми ще се разберете защо публикувам тема.Ако не друго - поне ще се посмеете 
      Ето го и него:
      #include <iostream> #include <string> using namespace std; int input(int x[]); int add(int a); void studentID(int a); int main() { int ch, GR[25][6], n; do { cout << "\Show student data: \n"; cout << "\Show GPA for subject : \n"; cout << "\Show GPA for a FN: \n"; cout << "\Show amount of students over the age of 18: \n"; cout << "\Exit"; do { cout << "\n\nChoice: \n"; cin >> ch; } } int input(int x[]) { int i, n = 0; do { cout << "\n Input size: "; cin >> n; } while (1 > n || n > 25); for (int i = 0; i < n; i++) { cout << "\n Enter element [" << i + 1 << "] = "; cin >> x[i]; } return n; } int add(int a) { char iz; while (1) { cout << "Insert ID:"; cin >> rab[a].id; cout << "Insert grade1:"; cin >> rab[a].g1; cout << "Insert grade2:"; cin >> rab[a].gr2; cout << "Insert grade3:"; cin >> rab[a].gr3; cout << "Insert grade4:"; cin >> rab[a].gr4; cout << "Insert age:"; cin >> rab[a].age; a++; cout << endl << "Do you want to add a new student?" << endl << "type (y) for yes and (n) for no:"; cin >> iz; if (iz == 'n') { return a; break; } return 0; } } void studentID(int a) { char ID[5]; // cout<<a; cout << "Insert ID:"; cin >> studentID; for (int i = 0; i<a; i++) if (!strcmp(studentID, rab[i].studentID)) { cout << "Name:" << rab[i].name << endl << "ID:" << rab[i].id << endl << "Age:" << rab[i].god << endl; } return; } Намерих същата задача във форума ви но е решена без функции а по следния начин:
      #include <iostream> using namespace std; int main() { int K=0; int choice=0; cout << "Vivedete broq na studentite(1-25): "; cin >> K; double GR[K][6]; for(int i=0; i<K; ++i) for(int j=0; j<6; ++j) { cout << "GR("<<i<<","<<j<<") = "; cin >> GR[i][j]; } do { cout << "1. Izchislqvane i izvejdane na sredniq uspeh po izbrana disiplina" << endl; cout << "2. Izchislqvane i izvejdane na sredniq uspeh na student po dazaden vakulteten nomer" << endl; cout << "3. Namirane i izvejdane na broq na studentite nad zadadena vizrast." << endl; cout << "4. Izvejdane na ekrana sidirjanieto na masiwa sys siotvetniq tekst i formati." << endl; cout << "Molq, izberete obciq(1-4): "; cin >> choice; }while(choice>4 || choice<1); if(choice == 1) { int disiplina=0; double srUspeh=0; cout << "Izberete disiplina(1-4): "; cin >> disiplina; if(disiplina > 5 || disiplina < 1) cout << "Greshen vhod!" << endl; for(int i=0; i<K; ++i) srUspeh+=GR[i][disiplina]; cout << "Sredniq uspeh po disiplina " << disiplina << " e : " << srUspeh/K << endl; } else if(choice == 2) { int FKNomer=0; bool isFound=false; double srUspeh=0; cout << "FK Nomer: "; cin >> FKNomer; for(int i=0; i<K; ++i) { if(GR[i][0] == FKNomer) { for(int j=1; j<5; ++j) srUspeh += GR[i][j]; isFound = true; break; } } if(isFound == false) cout << "Ne e nameren student s takiv FK nomer!" << endl; else if(isFound) cout << "Sredniq uspeh na student s FK=" << FKNomer << " e : " << srUspeh/4 << endl; } else if(choice == 3) { int vizrast, br=0; cout << "Vivedete vizrast: "; cin >> vizrast; for(int i=0; i<K; ++i) { if(GR[i][5] > vizrast) { br++; } } cout << "Broq na studentite, koito sa po-golemi ot " <<vizrast << " godini: " << br << endl; } else if(choice == 4) { for(int i=0; i<K; ++i) { cout << "Student " << i+1 << endl; cout << "Fak. Nomer: " << GR[i][0] << endl; cout << "Otsenki: " << GR[i][1] << " " << GR[i][2] <<" "<< GR[i][3] <<" "<<GR[i][4] << endl; cout << "Vizrast: " << GR[i][5] << endl; } } return 0; } Не мисля че това е целта на задачата, така че едва ли ще бъде приета за вярна. 
    • от Bojidar Velinov
      Здравейте, затънах на реферата по програмиране...

      Да се състави програма, която намира най - голямата цифра в зададено цяло число. (ТАЗИ Я РЕШИХ И ДО ТАМ)

      Зададен е едномерен масив от цели числа A0, A1,.......,An-1. Да се състави програма, която създава нов масив a0, a1,.....,an-1, като стойността на ai е равна на броя на нечетните цифри на Ai.

      Даден е двумерен масив A с м реда и n стълба. Да се състави програма, която създава нов масив a0, a1,....,am-1, като стойността на ai е равна на броя на отрицателните елементи в i-тия ред.

      Моля помагайте....
  • Дарение

×

Информация

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