я решил так:
#include "stdafx.h"
int dlinna(int a)
{ int s=1, u=a;
while(u>9)
{
s++;
u=u/10;
}
return s;
}
int invent(int a)
{ int p=0,w=1,s=0;
int t=dlinna(a);
for(int i=1;i<t+1;i++)
{
int u=a;
for(int j=i;j<t;j++)
u=u/10;
for(int k=1 ;k<i;k++)
w=w*10;
u=u-(u/10)*10;
s=s+u*w;
w=1;
}
return s;
}
int _tmain()
{
int a;
printf("введите число \n");
scanf("%d",&a);
printf("новое число %d\n",invent(a));
scanf("%d",&a);
return 0;
}
Решить задачу на C++
перепиши так:" писал(а):int fact(int n)
{
if(n==1)return 1;
else return n*fact(n-1);
}
int fact (int i)
{
int j;
for (j=i-1; j>0; --j)
{
i*=i;
}
return i;
}
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Написать программу, которая проверяет, есть ли во введен*
ном с клавиатуры массиве элементы с одинаковым значением.
У меня не получается!!!!!!!!! В чём ошибки??
#include<iostream>
#include<conio.h>
using namespace std;
void main()
{
const int n = 5;
int arr[n];
int i;
cout <<"Vvedite elementi massiva: " << endl;
for(i = 0; i < n; i++)
{
cout << "Element " << i << " : ";
cin >> arr;
}
cout << endl;
cout << "Massiv imeet vid: " << endl;
for(i = 0; i < n; i++)
{
cout << arr << " ";
}
cout << endl;
cout <<"Dlia prodolgenia nagmite lubuu klavishu: ";
getch();
cout << endl;
int m = 0;
for(i = 0; i < n; i++)
{
if(arr == i )
{
m++;
}
}
if(m)
{
cout <<"Naideni odinakovie elementi: " << m << i << endl;
}
else
{
cout << "Odinakovix elementov ne obnarugenno!! " << endl;
}
cout << endl;
getch();
}
ном с клавиатуры массиве элементы с одинаковым значением.
У меня не получается!!!!!!!!! В чём ошибки??
#include<iostream>
#include<conio.h>
using namespace std;
void main()
{
const int n = 5;
int arr[n];
int i;
cout <<"Vvedite elementi massiva: " << endl;
for(i = 0; i < n; i++)
{
cout << "Element " << i << " : ";
cin >> arr;
}
cout << endl;
cout << "Massiv imeet vid: " << endl;
for(i = 0; i < n; i++)
{
cout << arr << " ";
}
cout << endl;
cout <<"Dlia prodolgenia nagmite lubuu klavishu: ";
getch();
cout << endl;
int m = 0;
for(i = 0; i < n; i++)
{
if(arr == i )
{
m++;
}
}
if(m)
{
cout <<"Naideni odinakovie elementi: " << m << i << endl;
}
else
{
cout << "Odinakovix elementov ne obnarugenno!! " << endl;
}
cout << endl;
getch();
}
PaNyA писал(а):Народ,помогите решить задачку на с++ ! "Написать программу, которая проверяет, является ли введенное пользователем число четным" Заранее спасибо!
Вот то что ты хотел:
#include<iostream>
#include<conio.h>
using namespace std;
void main()
{
int n;
cout <<"Vvedite chislo: ";
cin >> n;
if(n % 2 == 0)
{
cout << "Chetnoe " << endl;
}
else
{
cout <<"Nechetnoe " << endl;
}
getch();
}
Werth писал(а):Написать программу, которая проверяет, есть ли во введен*
ном с клавиатуры массиве элементы с одинаковым значением.
У меня не получается!!!!!!!!! В чём ошибки??
#include<iostream>
#include<conio.h>
using namespace std;
void main()
{
const int n = 5;
int arr[n];
int i;
cout <<"Vvedite elementi massiva: " << endl;
for(i = 0; i < n; i++)
{
cout << "Element " << i << " : ";
cin >> arr;
}
cout << endl;
cout << "Massiv imeet vid: " << endl;
for(i = 0; i < n; i++)
{
cout << arr << " ";
}
cout << endl;
cout <<"Dlia prodolgenia nagmite lubuu klavishu: ";
getch();
cout << endl;
int m = 0;
//проверку надо изменить
for(i = 0; i < n; i++)
{
if(arr == i )
{
m++;
}
}
//-----------------
if(m)
{
cout <<"Naideni odinakovie elementi: " << m << i << endl;
}
else
{
cout << "Odinakovix elementov ne obnarugenno!! " << endl;
}
cout << endl;
getch();
}
//проверку надо изменить
for(i = 0; i < n; i++)
{
for(int i1 = 0; i1 < n; i1++)
{
//стандартное решение: как быдто сравниваем элементы из двух массивов(массивы одинаковые)
//только одно условие что б элемент сам собой не сравнивать то проверяем индекс чтоб не совпадал
if((arr == arr[i1])&&(i!=i1))
{
m++;
}
}
//-----------------
-
- Сообщения: 14
- Зарегистрирован: 04 фев 2009, 13:48
Помогите пожалуйста решить задачу на C++.
В массиве целых чисел размерности n найти наиболее часто встречающееся число. Если таких чисел несколько, то определить наименьшее из них.
В массиве целых чисел размерности n найти наиболее часто встречающееся число. Если таких чисел несколько, то определить наименьшее из них.
Werth
У тебя подход в корне неверный: ты сравниваеш не введённые числа, а числа и их индексы.
У тебя подход в корне неверный: ты сравниваеш не введённые числа, а числа и их индексы.
qwerty2009 писал(а):Помогите пожалуйста решить задачу на C++.
В массиве целых чисел размерности n найти наиболее часто встречающееся число. Если таких чисел несколько, то определить наименьшее из них.
вот решение с коментами:
Код: Выделить всё
int main()
{
//В массиве целых чисел размерности n найти
//наиболее часто встречающееся число.
//Если таких чисел несколько,
//то определить наименьшее из них.
const int n = 10;
int mas[n]; //заданный массив
int vsp[n]; //вспомогательный массив
int sum[n]; //для подсчета наиболее
//повторяющихся чисел
//тут мона написать по вводу чисел.
//смотри в этой теме есть примеры
//я просто задаю в программе
cout<<"\n---------------------------------\n";
randomize();
for(int i = 0; i < n; i++)
mas[i]=random(10);
for(int i = 0; i < n; i++)
vsp[i]=0;
for(int i = 0; i < n; i++)
sum[i]=0;
//выделяем все неповторяющиеся числа и
//записываем в вспомогательный массив
int y=0; //количество не повторяющихся чисел
//пробегаемся по нашему массиву
for(int i = 0; i < n; i++)
{
bool f=false; //нету такого числа
//пробегаем по вспомогательному массиву
for(int h=0; h<y; h++)
{
if(mas[i] == vsp[h])
{
f=true; // у нас есть такой
}; //элемент в вспомогательном массиве
};
//если нет такого числа то добавляем его.
if (f==false)
{
vsp[y]=mas[i];
y++;
};
};
//теперь подсчитаем какие числа больше всего повторяются.
//пробегаемся по нашему массиву
for(int i = 0; i < n; i++)
{
//пробегаем по вспомогательному массиву
for(int h=0; h<y; h++)
{
if(mas[i] == vsp[h])
{
sum[h]++;
};
};
};
//определим наиболее встречаемое и меньшее
//пробегаем по вспомогательному массиву
int c,w; //с - число;
//w - количество раз встречается в mas
c=vsp[0];
w=sum[0];
for(int i = 0; i < y; i++)
{
if(sum[i]>=w) //выбираем наиболее встречающиеся
{
if(sum[i]==w) //если частота совпадает
{
//то выбираем наименьшее число
if(c>vsp[i])
{
w=sum[i];
c=vsp[i];
};
}
else //если частота больше
{
w=sum[i];
c=vsp[i];
};
};
};
//выводим что есть
cout<<"mas: [";
for(int i = 0; i < n; i++)
{
cout<<mas[i]<<"] [";
};
cout<<"]\n";
cout<<"y="<<y<<"\n";
cout<<"vsp: |";
for(int i = 0; i < y; i++)
{
cout<<vsp[i]<<"| |";
}
cout<<"|\n";
cout<<"sum: |";
for(int i = 0; i < y; i++)
{
cout<<sum[i]<<"| |";
}
cout<<"|\n";
cout<<"c="<<c<<" - otvet (w="<<w<<" raz(a))\n";
cout<<"Press anykey... ";
getch(); //ожидаем нажатия клавиши(любой)
return 0;
}
Сравнивать надо каждый элмент с каждым (кроме него самого) в двойном цикле, как во вложении." писал(а):Сообщение от Werth
Написать программу, которая проверяет, есть ли во введен*
ном с клавиатуры массиве элементы с одинаковым значением.
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
atavin-ta писал(а):Сравнивать надо каждый элмент с каждым (кроме него самого) в двойном цикле, как во вложении.
то есть вот так?
for(i = 0; i < n; i++)
{
for(int i1 = 0; i1 < n; i1++)
{
//стандартное решение: как быдто сравниваем элементы из двух массивов(массивы одинаковые)
//только одно условие что б элемент сам собой не сравнивать то проверяем индекс чтоб не совпадал
if((arr == arr[i1])&&(i!=i1))
{
m++;
}
}