Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2011, 19:32   #11
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

Цитата:
Сообщение от Nedward Посмотреть сообщение
(double)(rand()%15)
Вы C и C++ случаем не перепутали? Все-таки Страуструп неспроста придумал разные преобразования типов, так что:
Код:
static_cast<double>(rand()%15)
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума Ответить с цитированием
Старый 30.06.2011, 19:32   #12
Angryant
Пользователь
 
Регистрация: 30.06.2011
Сообщений: 15
По умолчанию

Код:
// console.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>

void main(void)
{   
 
	int N,i,j,g,h;
	double s1,s2,s3,s,b[3][1000],q[1000];
	printf("Vvedite N\n");
	scanf_s("%d",&N);
	printf("\nVvedite '0' esli hotite vvesti znacheniya samostoyatelno,'1'esle hotite vospolzovatsya randomom");
	scanf_s("%d",&j);
	
	switch(j)
	{
	case 0:for(i=0;i<N;i++)
	 {
        scanf_s("%f%f",&h,&g);
		b[1][i]=h;
		b[2][i]=g;
	 }
	case 1:	for(i=0;i<N;i++)
	 {
  		b[2][i]=(double)(rand()%15);
		b[1][i]=(double)(rand()%15);
		
	 }
	}
	for(i=0;i<N;i++) 
	printf("\n\t%d\t%d",b[1][i],b[2][i]);
	_getch();
	g=0;
	for(i=0;i<N-2;i++)
    for(j=1;j<N-1;j++)
    for(h=2;h<N;h++)
	{
          s1=sqrt((double)(b[1][i]-b[1][j])*(b[1][i]-b[1][j])+(b[2][i]-b[2][j])*(b[2][i]-b[2][j]));
          s2=sqrt((double)(b[1][i]-b[1][h])*(b[1][i]-b[1][h])+(b[2][i]-b[2][h])*(b[2][i]-b[2][h]));
		  s3=sqrt((double)(b[1][h]-b[1][j])*(b[1][h]-b[1][j])+(b[2][i]-b[2][j])*(b[2][h]-b[2][j]));
		  s=s1+s2+s3;		 
		  q[g]=s;
		  g=g+1;
	
			 
		  printf("\n%d",s1);
		  printf("\n%d",s2);
		  printf("\n%d",s3);
		  _getch();

	}
	for(i=0;i<g;i++)
		printf("\n%d",b[i]);
	_getch();




}
Angryant вне форума Ответить с цитированием
Старый 30.06.2011, 20:57   #13
Nedward
Пользователь
 
Регистрация: 26.06.2011
Сообщений: 85
По умолчанию

Первое - вместо switch я бы на Вашем месте использовал if. Это дело вкуса, но если уж используете switch неплохо бы узнать, как именно он работает (подсказка - копайте в сторону break )
Второе - при объявлении массива int mass[3] мы получаем массив с тремя элементами int: mass[0], mass[1] и mass[2]. Вы объявляете double b[3][1000], но используете только b[1] и b[2]. Вероятно из-за того, что при объявлении double b[2] к b[2] не получается обратится? Хотя это несущественный минус, Вы просто зря занимаете в памяти пару килобайт, которые висят по адресу b[0]
К стати, в конце Вы пытаетесь вывести
Код:
	for(i=0;i<g;i++)
		printf("\n%d",b[i]);
Конечно, есть вероятность, что Вас действительно интересовали адреса в оперативной памяти, по которым лежат переменные, но что-то мне подсказывает что подразумевалось нечто другое
В общем вот Вам слегка измененное начало программы (ошибку в switch я не исправил - лень зато добавил сообщения. Когда эта ошибка выскочит Вы сами все поймете ). Конечно, ниже в коде тоже есть ошибки, но, поскольку я не совсем понимаю, что программа должна делать пока оставлю все так. Главное - массив с double забивается случайными значениями, с чем Вы и просили помочь в начале темы.
Код:
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <locale>
#include <iostream>

using namespace std;

int main()
{
	setlocale(LC_ALL,"Russian");
	int N,//Кол-во элементов в массиве
		i,j,g,h;
	double s1,s2,s3,s,b[3][1000],q[1000];
	printf("Введите N\n");
	scanf_s("%d",&N);
	printf("Введите '0' если хотите ввести значения самостоятельно,'1' если хотите, чтобы они заполнились случайными числами\n");
	scanf_s("%d",&j);
	
	switch(j)
	{
	case 0:
		for(i=0;i<N;i++)
		{
			scanf_s("%f%f",&h,&g);
			b[1][i]=h;
			b[2][i]=g;
		}
		cout << "Выбран и выполнен вариант 0" << endl;
	case 1:
		for(i=0;i<N;i++)
		{
			b[2][i]=(double)(rand()%15);
			b[1][i]=(double)(rand()%15);
		}
		cout << "Выбран и выполнен вариант 1" << endl;
	}
	for(i=0;i<N;i++)
		cout << b[1][i] << " " << b[2][i] << endl;
		//printf("\n\t%d\t%d",b[1][i],b[2][i]);
	cout << "===============" << endl;
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. (c) Martin Golding
Nedward вне форума Ответить с цитированием
Старый 30.06.2011, 21:04   #14
Nedward
Пользователь
 
Регистрация: 26.06.2011
Сообщений: 85
По умолчанию

Цитата:
Сообщение от Сtrl Посмотреть сообщение
Вы C и C++ случаем не перепутали? Все-таки Страуструп неспроста придумал разные преобразования типов, так что:
Код:
static_cast<double>(rand()%15)
Путаю. Постоянно . В интернете, увы, слишком много кода-мусора конца 80х, а самое страшное - студенты, которых учат по программе утвержденной еще ЦК КПСС так что найти нужное решение именно на си++ не всегда удается - вот и получаются люди с кашей в голове типа меня
Стараюсь бороться с этим, но пока борьба идет с переменным успехом
Спасибо за поправку!
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. (c) Martin Golding

Последний раз редактировалось Nedward; 30.06.2011 в 21:34.
Nedward вне форума Ответить с цитированием
Старый 30.06.2011, 21:08   #15
Angryant
Пользователь
 
Регистрация: 30.06.2011
Сообщений: 15
По умолчанию

про русский язык не знал
а вообще спасибо огромное,начал изучать совсем недавно,вы мне очень помогли
Angryant вне форума Ответить с цитированием
Старый 30.06.2011, 21:20   #16
Angryant
Пользователь
 
Регистрация: 30.06.2011
Сообщений: 15
По умолчанию

что значит using namespace std; ?
Angryant вне форума Ответить с цитированием
Старый 30.06.2011, 21:33   #17
Nedward
Пользователь
 
Регистрация: 26.06.2011
Сообщений: 85
По умолчанию

Цитата:
Сообщение от Angryant Посмотреть сообщение
что значит using namespace std; ?
Это такая забавная штука, чтобы писать не
Код:
std::cout << "Сообщение";
а просто
Код:
cout << "Сообщение";
Лично я пользуюсь этим редко, и обычно только для пространства имен "std". Если злоупотреблять, то используя библиотеки со сложной иерархией можно запутаться. Хотя дело вкуса
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. (c) Martin Golding
Nedward вне форума Ответить с цитированием
Старый 30.06.2011, 22:22   #18
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию

Насколько мне известно хорошим тоном будет не перемешивание std и (функций printf и scanf). Т.е. использовать cout и cin.
Изо всей благодати
В руках крепко сжатых
Я донесу только капли
Roof вне форума Ответить с цитированием
Старый 30.06.2011, 22:27   #19
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Angryant Посмотреть сообщение
что значит using namespace std; ?
Примерно то-же, что я тебя люблю, разделим эту кровать
Называется "пространство имён".
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 30.06.2011, 23:48   #20
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Примерно то-же, что я тебя люблю, разделим эту кровать :d
Хорошая аналогия, потому что с этой штукой затрахаешься! :)
Из-за конфликта имен, само собой.
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование типа c++ 0479 Помощь студентам 2 14.09.2010 00:53
Паскаль преобразование типа 0479 Помощь студентам 1 13.09.2010 00:59
Преобразование типа AnsiString Leo705 Общие вопросы C/C++ 2 20.04.2010 20:51
Преобразование типа данных L_M PHP 4 03.02.2010 21:13
Преобразование типа объекта Oburec Общие вопросы Delphi 4 12.04.2009 14:20