Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание и заполнение массива из структур 
:(
    Опции темы
ausar
Дата 12.8.2007, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 3.8.2007

Репутация: нет
Всего: нет



Опять бъюсь с структурами и текстовыми переменными
Попробовал описать новую структуру и заполнить структурами массив mas[n]. Значения должны 

назначаться сразу а не с клавиатуры затем выводиться на экран. В далеком будущем
когда я наконец этого добъюсь значения переменных z.nom будут суммироваться! ;)
Хотя щас я даже не представляю как это сделать. В очередной раз прошу снизойти рассмотрения 

моих проблем.
1.Заполнение массива не с клавиатуры
2.Вывод определенного элемента массива
3.Подсчет суммирование значений переменных z.nom

#include <stdio.h>
#include <string.h>
#include <conio.h>
#define n 10
int main(){
struct as{char a[23];int nom;}z;
struct as mas[n];
z.a="Google";
z.nom=23;
mas[1]=z;
printf("\n%s",mas[1]);
z.a="Rambler";
z.nom=32
mas[2]=z
printf("\n%s",mas[2]);
return 0;
}
PM MAIL   Вверх
Damarus
Дата 12.8.2007, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 671
Регистрация: 6.5.2006

Репутация: нет
Всего: 29



Код

#include <stdio.h>
#include <string.h>
#include <conio.h>

#define n 10

int main(int argc, char *argv[])
{    
    struct as
    {
        char a[23];
        int nom;
    };
    
    struct as mas[n];
    
    strcpy(mas[0].a, "Google");
    mas[0].nom = 23;
    strcpy(mas[1].a, "Rambler");
    mas[1].nom = 32;
    
    printf("mas[0]: a - %s, nom - %d\n", mas[0].a, mas[0].nom);
    printf("mas[1]: a - %s, nom - %d\n", mas[1].a, mas[1].nom);

    return 0;
}


Добавлено @ 12:38
Код

#include <stdio.h>
#include <string.h>
#include <conio.h>

#define n 10

int main(int argc, char *argv[])
{    
    struct as
    {
        char a[23];
        int nom;
    };
    
    struct as mas[n] = 
    { 
        { "Google", 23 }, 
        { "Rambler", 32 } 
    };
    
    printf("mas[0]: a - %s, nom - %d\n", mas[0].a, mas[0].nom);
    printf("mas[1]: a - %s, nom - %d\n", mas[1].a, mas[1].nom);

    return 0;
}



Это сообщение отредактировал(а) Damarus - 12.8.2007, 12:40
PM MAIL ICQ Jabber   Вверх
ausar
Дата 13.8.2007, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 3.8.2007

Репутация: нет
Всего: нет



Вот что у меня получилось но for почемуто не выводит записи :(
Подсобите люди добрые чуть чуть осталось.

Код

#include <stdio.h>
#include <string.h>
#include <conio.h>
#define n 4
int main()
{int i;
{struct as {char a[23];int b;int c;int d;};
struct as mas[n] =
    {
        { "Google", 2321, 23,43},
        { "Rambler", 32312,423,33 },
        { "Aport", 43223,423,31 },
        { "Yandex", 43433,432,32 },
    };
    for (i=0;i=n;i++)
    printf("%d\t%s\t%d",i+1,mas[i].a,mas[i].b);
    }
    return 0;
getch();
}


PM MAIL   Вверх
MAKCim
Дата 13.8.2007, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 2
Всего: 207



ausar, 
Код

for (i=0; i < n; i++)
    printf("%d\t%s\t%d",i+1,mas[i].a,mas[i].b);
    }



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
ausar
Дата 13.8.2007, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 3.8.2007

Репутация: нет
Всего: нет



Спасибо Damarus и MAKCim хотел было поставить точку но 
Опять заморочка с суммированием mas[i].c
Никак не пойму

Код

#include <stdio.h>
#include <string.h>
#include <conio.h>
#define n 4
int main()
{int i,s,f,c;
{struct as {char a[23];int b;int c;int d;};
struct as mas[n] =
    {
        { "Google", 2, 23,43},
        { "Rambler", 3,423,33 },
        { "Aport", 4,423,31 },
        { "Yandex", 4,432,32 },
    };
    s=0;
    for (i=0; i < n; i++)
    s=mas[i].b;
    printf("%d.\t%s\t\t\%d\t\t%d\t\t%d\n",i+1,mas[i].a,mas[i].b,mas[i].c,mas[i].d);
    }
    printf("%d",s);
    return 0;
getch();
}


PM MAIL   Вверх
MAKCim
Дата 13.8.2007, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 2
Всего: 207



ausar, 
Код

s += mas[i].b;



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
ausar
Дата 13.8.2007, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 3.8.2007

Репутация: нет
Всего: нет



Считает отлично! Правильно но увы появился небольшой побочный эффект - перестал выводится на экран сам массив только его последний элемент и то с значениями от винта вплоть до отрицательных smile
Подсобите пожалуйста. Сам чувствую не осилю :(

Это сообщение отредактировал(а) ausar - 14.8.2007, 01:17
PM MAIL   Вверх
Partizan
Дата 14.8.2007, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 2
Всего: 67



ausar, 

Код

 for (i=0; i < n; i++){
    s=mas[i].b;
    printf("%d.\t%s\t\t\%d\t\t%d\t\t%d\n",i+1,mas[i].a,mas[i].b,mas[i].c,mas[i].d);
}



--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
aleknek
Дата 30.3.2008, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 27.2.2006

Репутация: нет
Всего: нет



Необходимо скомпоновать программку, которая отслеживает пожертвования в общество защиты влиятельных лиц. Она должна запрашивать у пользователя количество меценатов, а затем приглашать вводить их имена и суммы пожертвований от каждого. Так вот возникла небольшая проблема с инициализацией.       После ввода имени,  цикл прекращает работу, хотя если поменять местами несколько строк кода, то проблем не возникает, т.е сначала ввести сумму, а потом имя. Как можно сделать, чтобы сначала вводить имя а потом уже сумму?                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
Код

#include "stdafx.h"
#include <iostream>
#include <locale>       
#include "conio.h"
using namespace std;

struct patrons
{
    char* name[30];
    double summ;
};

int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_CTYPE,".1251");
    setlocale(LC_MONETARY,".1251");


    int col;
    
    cout << "Введите количество меценатов их имена и сумму пожертвований: ";
    cin >> col;
    patrons* arr_patrons = new patrons[col];
    for (int i = 0; i < col; i++)
    {
        cout << "\nВведите имя мецената:";
        cin.getline(arr_patrons[i].name, 30);
        cin.get();
        сout << "\nВведите сумму пожертвований";
        cin >> arr_patrons[i].summ;
        cin.get();
    }
    for (int i = 0; i < col; i++)
    {
    cout << "\nИмя мецената: " << arr_patrons[i].name;
    cout << "\nСумма пожертвований: " << arr_patrons[i].summ;
    }
        delete [] arr_patrons;

        getch();
    return 0;


Это сообщение отредактировал(а) aleknek - 30.3.2008, 14:43
PM MAIL   Вверх
creatorcode
Дата 30.3.2008, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 12.6.2006
Где: Ленинград

Репутация: 1
Всего: 4



Код

struct patrons
{
    char name[30];
    double summ;
};

PM MAIL   Вверх
aleknek
Дата 30.3.2008, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 27.2.2006

Репутация: нет
Всего: нет



По прежнему не работает, вылетает все равно.

PM MAIL   Вверх
korian
Дата 30.3.2008, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 2
Всего: 17



Код

    {
        cout << "\nВведите имя мецената:";
        cin.getline(arr_patrons[i].name, 30);
        сout << "\nВведите сумму пожертвований";
        cin >> arr_patrons[i].summ;
    }


Это сообщение отредактировал(а) korian - 30.3.2008, 17:30
PM   Вверх
aleknek
Дата 30.3.2008, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 27.2.2006

Репутация: нет
Всего: нет



Цитата(korian @  30.3.2008,  17:30 Найти цитируемый пост)
{
        cout << "\nВведите имя мецената:";
        cin.getline(arr_patrons[i].name, 30);
        сout << "\nВведите сумму пожертвований";
        cin >> arr_patrons[i].summ;
    }


В этом случае программа сразу переходит к вводу суммы, пропуская ввод имени и при выводе поле с именем остается пустым.

PM MAIL   Вверх
creatorcode
Дата 30.3.2008, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 12.6.2006
Где: Ленинград

Репутация: 1
Всего: 4



Код

    for (int i = 0; i < col; i++)
    {
        cout<<"Введите имя мецената: ";
        cin.ignore();
        cin.get(arr_patrons[i].name, 30);
        cout<<"Введите сумму пожертвований: ";
        cin>>arr_patrons[i].summ;     
    }


Это сообщение отредактировал(а) creatorcode - 30.3.2008, 18:23
PM MAIL   Вверх
aleknek
Дата 30.3.2008, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 27.2.2006

Репутация: нет
Всего: нет



Спасибо большое, 
creatorcode, теперь все в порядке. smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0978 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.