|
|
|
| дан одномерный массив и необходимо перемножить все его элементы
я сделал так
#include <iostream.h>
void vvod(int n,int array[]);
int proizved(int n,int array[],int rez);
void vivod(int k);
main(){
int n,array[100],rez=1,k;
cout<<"n=";
cin>>n;
vvod(n,array);
k=proizved(n,array,rez);
vivod(k);
return 0;}
void vvod(int n,int array[]){
for(int i=0;i<n;i++){
cout<<"array["<<i<<"]=";
cin>>array[i];}}
int proizved(int n,int array[],int rez){
for(int i=0;i<n;i++){
rez*=array[i];}}
void vivod(int k){
cout<<"rez="<<k<<endl;}
|
полночи просидел уже неуспеваю, помгите найти ошибку.
и второй вопрос
В массиве А[n] записаны оценки экзаменующихся, полученные на первом экзамене. как подсчитать, сколько человек не допущено ко второму экзамену? Я тут понял необходимо использовать цикл while? | |
|
|
|
|
|
|
|
для: ols
(05.09.2007 в 12:43)
| | Хм... у вас явно не хватает двух завершающих фигурных кавычек
#include <iostream.h>
void vvod(int n,int array[]);
int proizved(int n,int array[],int rez);
void vivod(int k);
main()
{
int n,array[100],rez=1,k;
cout<<"n=";
cin>>n;
vvod(n,array);
k=proizved(n,array,rez);
vivod(k);
return 0;
}
void vvod(int n,int array[])
{
for(int i=0;i<n;i++)
{
cout<<"array["<<i<<"]=";
cin>>array[i];}}
int proizved(int n,int array[],int rez)
{
for(int i=0;i<n;i++)
{
rez*=array[i];
}
}
// Здесь явно не хватает двух завершающих
// фигурных скобок
void vivod(int k)
{
cout<<"rez="<<k<<endl;
} |
| |
|
|
|
|
|
|
|
для: cheops
(05.09.2007 в 12:57)
| | cheops, спсибо=))
немного доработал
#include <iostream.h>
void vvod(int n,int array[]);
int proizved(int n,int array[],int rez);
void vivod(int k);
main(){
int n,array[100],rez=1,k;
cout<<"n=";
cin>>n;
vvod(n,array);
k=proizved(n,array,rez);
vivod(k);
return 0;}
void vvod(int n,int array[]){
for(int i=0;i<n;i++){
cout<<"array["<<i<<"]=";
cin>>array[i];}}
int proizved(int n,int array[],int rez){
for(int i=0;i<n;i++){
rez*=array[i];}
//дописал возврат
return rez;}
void vivod(int k){
cout<<"rez="<<k<<endl;}
|
| |
|
|
|
|
|
|
|
для: ols
(05.09.2007 в 13:01)
| | Хм... лучше всё-таки использовать отступы - сразу будет видно, где фигурных скобок не хватает. По прежнему нет одной завершающий скобки для функции vvod():
#include <iostream.h>
void vvod(int n,int array[]);
int proizved(int n,int array[],int rez);
void vivod(int k);
main()
{
int n,array[100],rez=1,k;
cout<<"n=";
cin>>n;
vvod(n,array);
k=proizved(n,array,rez);
vivod(k);
return 0;
}
void vvod(int n,int array[])
{
for(int i=0;i<n;i++){
cout<<"array["<<i<<"]=";
cin>>array[i];}}
int proizved(int n,int array[],int rez)
{
for(int i=0;i<n;i++)
{
rez*=array[i];
}
//дописал возврат
return rez;
}
// Ещё одной фигурной скобки не хватает
void vivod(int k)
{
cout<<"rez="<<k<<endl;
} |
| |
|
|
|
|
|
|
|
для: ols
(05.09.2007 в 12:43)
| | >В массиве А[n] записаны оценки экзаменующихся, полученные на первом экзамене. как
>подсчитать, сколько человек не допущено ко второму экзамену? Я тут понял необходимо
>использовать цикл while?
А какой критерий недопуска? Оценка меньшая или равная 2? | |
|
|
|
|
|
|
|
для: cheops
(05.09.2007 в 12:58)
| | Оценка равна 2 | |
|
|
|
|
|
|
|
для: ols
(05.09.2007 в 13:02)
| | С подсчетом кол-ва человек которые не допущено
#include <iostream.h>
void vvod(int n,int array[]);
int proizved(int n,int array[],int rez);
void vivod(int k);
void dvoiki(int n, int array[]);
main(){
int n,array[100],rez=1,k,b;
cout<<"n=";
cin>>n;
vvod(n,array);
k=proizved(n,array,rez);
vivod(k);
dvoiki(n,array);
return 0;}
void vvod(int n,int array[]){
for(int i=0;i<n;i++){
cout<<"array["<<i<<"]=";
cin>>array[i];}}
int proizved(int n,int array[],int rez){
for(int i=0;i<n;i++){
rez*=array[i];}
return rez;}
void dvoiki(int n,int array[])
{int kol=0;
for(int i=0;i<n;i++)
{if (array[i]<=2) {++kol;} }
cout<<"ne dopushenih="<<kol<<"\n";}
void vivod(int k){
cout<<"rez="<<k<<endl;}
|
| |
|
|
|
|
|
|
|
для: dima_s_d_s
(05.09.2007 в 13:51)
| | Спасибо, теперь вопрос. Мне необходимо заключить этот код ф функцию, затем ее вызвать. Это делается также как и в php? Покажите пример. | |
|
|
|
|
|
|
|
для: ols
(05.09.2007 в 13:02)
| | Можно отталкиваться от такого приложения
#include <iostream.h>
int main()
{
int A[] = {1, 2, 4, 4, 5, 2, 3, 5, 3, 2, 3, 1, 4, 5, 3, 4, 5};
int count = 0;
for(int i = 0; i < sizeof(A)/sizeof(A[0]); i++)
{
if(A[i] <= 2) count++;
}
cout << "Количество недопущенных до второго экзамена - " << count;
return 0;
} |
| |
|
|
|
|
|
|
|
для: cheops
(05.09.2007 в 14:05)
| | А для чего необходима rez=1,k,b;? | |
|
|
|
|
|
|
|
для: ols
(09.09.2007 в 21:51)
| | Строка
int n,array[100],rez=1,k,b; |
объявляет целочисленные переменные, в том числе и массив array и переменную rez инициированную единицей. | |
|
|
|
|
|
|
|
для: cheops
(10.09.2007 в 08:56)
| | извините что не в новой теме, но у меня почти подобный вопрос.
#include <iostream.h>
int main()
{
int M=5
int A[] = {1, 2, 4, 4, 5, 2, 3, 5, 3, 2, 3, 1, 4, 5, 3, 4, 5};
int count = 0;
for(int i = 0; i < M; i++)
{
/// Здесь перемножаем элементы массива только те которые больше M и выводим результат.
//Если больше M нет, то выводим сообщение об этом
}
Как правильно реализовать?
}
|
| |
|
|
|
|
|
|
|
для: keefree
(13.09.2007 в 18:06)
| |
#include <iostream.h>
void main ()
{
int M=5,count = 1;
int A[] = {1, 2, 4, 4, 5, 2, 3, 5, 3, 2, 3, 1, 4, 5, 3, 4, 5};
for (int i=0; i<sizeof(A)/4; i++) {if (A[i]>M) count*=A[i];}
if (count!=1) {cout<<"перемнож элементы больше "<<M<<" = "<<count;}
else {cout<<"Нет элементов больше "<<M;}
}
|
| |
|
|
|
|
|
|
|
для: dima_s_d_s
(13.09.2007 в 19:14)
| | Переменую M сделал ввод с клавиатур. А как вводить лементы масива A с клавы? Тоесть, чтобы в программе не задавать в самом коде int A[] = {1, 2, 4, 4, 5, 2, 3, 5, 3, 2, 3, 1, 4, 5, 3, 4, 5};, а вводить с клавы
#include <iostream.h>
void main ()
{
int M,count = 1;
cout<<"M=";
cin>>M;
int A[] = {1, 2, 4, 4, 5, 2, 3, 5, 3, 2, 3, 1, 4, 5, 3, 4, 5};
for (int i=0; i<sizeof(A)/4; i++) {if (A[i]>M) count*=A[i];}
if (count!=1) {cout<<"перемнож элементы больше "<<M<<" = "<<count;}
else {cout<<"Нет элементов больше "<<M;}
}
|
| |
|
|
|
|
|
|
|
для: keefree
(18.09.2007 в 01:41)
| |
void main ()
{
const int size=17; //кол-во элементов (в динамическом массиве можно задавать кол-во элементов с клавиатуры, в нашем случае кол-во элементов должно определяться константой)
int M=5,count = 1;
int A[size];
for (int i=0; i<size; i++) {cout<<"A["<<i<<"]= "; cin>>A[i]; if (A[i]>M) count*=A[i];} // заполняем и сразу проверяем на наше условие
if (count!=1) {cout<<"перемнож элементы больше "<<M<<" = "<<count;}
else {cout<<"Нет элементов больше "<<M;}
}
|
| |
|
|
|
|
|
|
|
для: dima_s_d_s
(18.09.2007 в 20:47)
| |
#include <iostream.h>
void vvod(int n,int array[]);
int proizved(int n,int array[],int rez);
void vivod(int k);
void dvoiki(int n, int array[]);
main(){
int n,array[100],rez=1,k,b;
cout<<"n=";
cin>>n;
vvod(n,array);
k=proizved(n,array,rez);
vivod(k);
dvoiki(n,array);
return 0;}
void vvod(int n,int array[]){
for(int i=0;i<n;i++){
cout<<"array["<<i<<"]=";
cin>>array[i];}}
int proizved(int n,int array[],int rez){
for(int i=0;i<n;i++){
rez*=array[i];}
return rez;}
void dvoiki(int n,int array[])
{int kol=0;
for(int i=0;i<n;i++)
{if (array[i]<=2) {++kol;} }
cout<<"ne dopushenih="<<kol<<"\n";}
void vivod(int k){
cout<<"rez="<<k<<endl;}
|
А можно ли этот пример в виде класса описать? | |
|
|
|
|
|
|
|
для: ols
(09.10.2007 в 21:15)
| | Написал первый свой класс, правда сырой.
В классе есть еще ошибки. При написании класса опирался на учебник, перечитывал многократно, пытаясь понять суть.
#include <iostream.h>
int n;
class Mas
{
private:
int array[100], int rez, int k;
public:
void vvod();
int proizved();
void vivod();
void dvoiki();
};
void Mas::vvod()
{
for (int=0;i<n;i++)
{
cout <<"array["<<i<<"]=";
cin>>array[i];
}
}
int Mas::proizved(rez)
{
for (int=0;i<n;i++)
{
rez*=array[i];
}
return rez;
}
void Mas::dvoiki()
{
int kol=0;
for (int=0;i<n;i++)
{
if(array[i]<=2)
{
++kol;
}
}
cout <<"ne dopuchenyh="<<kol<<"\n";
}
void Mas::vivod()
{
cout <"rez="<<k<<endl;
}
int main()
{
int rez=1,k,b;
cout<<"n=";
cin>>"n";
Mas S;
S.vvod();
S.proizved(rez);
S.vivod();
S.dvoiki();
}
|
Скажите правильно ли я составил алгоритм, или это можно было сделать по проще и лучше? | |
|
|
|
|
|
|
|
для: ols
(11.10.2007 в 16:41)
| | up | |
|
|
|
|