Форум программистов, компьютерный форум CyberForum.ru

надо исправить ошибку - C++

Восстановить пароль Регистрация
 
aidar9119
1 / 1 / 0
Регистрация: 20.12.2010
Сообщений: 73
04.01.2011, 12:25     надо исправить ошибку #1
задание выглядит так:
Заполнить файл f натуральными числами, полученными с помощью генератора случайных чисел. Найти количество квадратов нечетных чисел среди компонентов

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include<iostream>
#include<cstdlib>
#include <time.h>
#include<fstream>
#include<cmath>
 
using namespace std;
 
int main(){
srand(time(0));
int i,k,n,j=0;
n = rand()%20;
int mass[n];
cout<<"massiv:\n";
for( i =0;i<n;i++){
mass[i]= rand()%100;
cout<<mass[i]<<" ";
}
cout<<"\n dannie zapisani v ==>fin.txt"<<endl;;
FILE *fp1 = fopen("fin.txt","w");
if(!fp1)
{
cout << "Nevozmozhno otkryt' fail"<< endl;
}
for( i =0;i<n;i++){
k=sqrt(mass[i]);
if(mass[i]==k*k&&k%2!=0){
j++;
}
}
for(i=0;i<n;i++){
fprintf ( fp1, "%d", mass[i]);
fprintf ( fp1, " ");
}
fprintf ( fp1, "\n");
fprintf(fp1,"Kol-vo kvadratov nechetnix chisel: ");
fprintf ( fp1,"%d", j);
fclose(fp1);
system("PAUSE>>null");
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vx5
 Аватар для vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
04.01.2011, 13:34     надо исправить ошибку #2
а чем ошибка ? кроме того что у вас получилась какая-то абра-кадабра из смеси с и с++ ничего плохого замечено не было.
Все работает правильно:
Bash
1
2
3
4
5
6
7
vx5@home:~$ ./a.out
massiv:
86 66 9 18 9 
 dannie zapisani v ==>fin.txt
vx5@home:~$ cat fin.txt
86 66 9 18 9 
Kol-vo kvadratov nechetnix chisel: 2
aidar9119
1 / 1 / 0
Регистрация: 20.12.2010
Сообщений: 73
04.01.2011, 17:06  [ТС]     надо исправить ошибку #3
а у меня пачемуто 3 ошибки пишет:
1.cpp
c:\documents and settings\admin\рабочий стол\zada4a\1.cpp(13) : error C2057: expected constant expression
c:\documents and settings\admin\рабочий стол\zada4a\1.cpp(13) : error C2466: cannot allocate an array of constant size 0
c:\documents and settings\admin\рабочий стол\zada4a\1.cpp(13) : error C2133: 'mass' : unknown size
Error executing cl.exe.

Добавлено через 4 минуты
я не пойму че ему надо(С++)
Минич
 Аватар для Минич
66 / 66 / 3
Регистрация: 26.11.2010
Сообщений: 123
04.01.2011, 17:07     надо исправить ошибку #4
Цитата Сообщение от aidar9119 Посмотреть сообщение
n = rand()%20;
int mass[n];
ты так не можешь определить размерность массива, n - должно быть константным выражением или делай массив динамический
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
04.01.2011, 17:09     надо исправить ошибку #5
C++
1
2
3
int i,k,n,j=0;
n = rand()%20;
int mass[n];
c:\documents and settings\admin\рабочий стол\zada4a\1.cpp(13) : error C2466: cannot allocate an array of constant size 0
не возможно создать массив размером 0 элементов
C++
1
const int n = 10
если хочешь рандомно, создавай динамически
Минич
 Аватар для Минич
66 / 66 / 3
Регистрация: 26.11.2010
Сообщений: 123
04.01.2011, 17:11     надо исправить ошибку #6
и на 26 строчке приведите массив к какому-нибудь вещественному значению прежде чем вы его передаете в функцию sqrt, т.к. эта функция работает только с вещественными аргументами, например
C++
1
k=(int) sqrt((double) mass[i]);
aidar9119
1 / 1 / 0
Регистрация: 20.12.2010
Сообщений: 73
04.01.2011, 17:46  [ТС]     надо исправить ошибку #7
чета я ваще
Минич
 Аватар для Минич
66 / 66 / 3
Регистрация: 26.11.2010
Сообщений: 123
04.01.2011, 17:58     надо исправить ошибку #8
Цитата Сообщение от aidar9119 Посмотреть сообщение
n = rand()%20;
int mass[n];
сделайте вот так
C++
1
2
const int n = 10;
int mass[n];
либо
C++
1
2
n = rand()%20;
int *mass = new int[n];
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.01.2011, 18:21     надо исправить ошибку
Еще ссылки по теме:

C++ Надо найти ошибку в коде
Надо найти ошибку C++
C++ Почему выдает 0, и что надо исправить в вызове функции?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
aidar9119
1 / 1 / 0
Регистрация: 20.12.2010
Сообщений: 73
04.01.2011, 18:21  [ТС]     надо исправить ошибку #9
spasibo!!

Добавлено через 1 минуту
теперь бы эту програмку в Pascal ABC написать, сможете помочь??
Yandex
Объявления
04.01.2011, 18:21     надо исправить ошибку
Ответ Создать тему
Опции темы

Текущее время: 03:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru