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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2013, 13:38   #1
IgoreKMaN
Пользователь
 
Регистрация: 24.04.2012
Сообщений: 88
Восклицание Запись в файл

Добрый день! Запись в файл происходит, но записывает не весь массив, а только одно число... подскажите как вывести весь массив?
Код:
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "locale" //включаем дерективу для руского языка
void main(void)
{
	setlocale(LC_ALL,"Russian");//включаем русский язык
	
	
	 int i,j=0,n=0,k=1,z=0,t=1,d=0;
	int a[50], b[50], c[50];


		printf("Введите количество элементов массива \n");
	scanf(" %d",&d);

	FILE *tr;
	tr=fopen("C:\\1.txt","w");
	printf("Введите элемент массива \n");
	for (i=0;i<d;i++){

	printf("a[%d]= ", i+1);
	scanf(" %d",&a[i]);
	}

	printf("Массив b: \n");
	for (i=0;i<d;i++)
if (a[i]>=0) 
	{
		
		b[j]=a[i];
		
		printf("Элементы массива b = %d \n\n", b[j]);
		a[i]=k;
		n+=k;
}
		printf("\n");

		printf("Массив c: \n");
		for (i=0;i<d;i++)
if (a[i]<0) 
	{
		c[n]=a[i];
		
		printf("Элементы массива c =  %d \n\n", c[n]);
		a[i]=t;
		z+=t;
}
		
		printf("Положительные элементы = %d  \n", n);
		printf("Отрицательные элементы = %d  \n", z);

fprintf(tr, " Массив a: %d \n Массив b: %d \n Массив c: %d \n Количество положительных элементов %d \n Количество отрицательных элементов %d \n", a[i], b[j],c[n],n,z);
fclose(tr);

	system("pause");
	
}

Последний раз редактировалось IgoreKMaN; 25.10.2013 в 13:42.
IgoreKMaN вне форума Ответить с цитированием
Старый 25.10.2013, 14:03   #2
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Потому что Вы пишите в массив только элементы a[i] и b[j], причем 1 раз.
Нужно обернуть в цикл:
Код:
fprintf(tr, " Массив a: %d \n Массив b: %d \n Массив c: %d \n Количество положительных элементов %d \n Количество отрицательных элементов %d \n", a[i], b[j],c[n],n,z);
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 25.10.2013, 14:33   #3
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Все гораздо проще, на мой взгляд...
У вас не увеличиваются j и n. Они у вас все время равны 0. Вот вы и записывается в массивы b и c, в элемент - 0, число...
добавьте в условия j++ и n++...
Вы же пытаетесь заполнять массивы b и c? Или я что-то не так понимаю?
А вообще для записи массива я бы воспользовался циклом.
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!

Последний раз редактировалось Bugrimov; 25.10.2013 в 14:37.
Bugrimov вне форума Ответить с цитированием
Старый 25.10.2013, 14:39   #4
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Цитата:
Сообщение от Vanta11a Посмотреть сообщение
Потому что Вы пишите в массив только элементы a[i] и b[j], причем 1 раз.
Нужно обернуть в цикл:
Код:
fprintf(tr, " Массив a: %d \n Массив b: %d \n Массив c: %d \n Количество положительных элементов %d \n Количество отрицательных элементов %d \n", a[i], b[j],c[n],n,z);
И что за красота получится?
Заранее прошу прощение у администратора за этот пост...
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 25.10.2013, 14:43   #5
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Цитата:
И что за красота получится?
Ужас получится, да.
Но если человек сам писал этот код - поправить его нужным образом труда не составит.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)

Последний раз редактировалось Vanta11a; 25.10.2013 в 14:48.
Vanta11a вне форума Ответить с цитированием
Старый 25.10.2013, 14:48   #6
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Здорово будет если
Код:
n+=k;
а потом попытаемся
Код:
c[n]=a[i];
!!!!!!!!!
Не самая удачная идея...
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 25.10.2013, 16:21   #7
IgoreKMaN
Пользователь
 
Регистрация: 24.04.2012
Сообщений: 88
По умолчанию

Цитата:
Сообщение от Bugrimov Посмотреть сообщение
Здорово будет если
Код:
n+=k;
а потом попытаемся
Код:
c[n]=a[i];
!!!!!!!!!
Не самая удачная идея...
Почему не удачная идея???
IgoreKMaN вне форума Ответить с цитированием
Старый 25.10.2013, 16:57   #8
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Если n = 20 например после выполнения первого if, то запись числа у вас происходит в массив с в ячейку 20, так.. И что получится, БАРДАК Если конечно, я все правильно понимаю.
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 25.10.2013, 17:05   #9
IgoreKMaN
Пользователь
 
Регистрация: 24.04.2012
Сообщений: 88
По умолчанию

Цитата:
Сообщение от Bugrimov Посмотреть сообщение
Если n = 20 например после выполнения первого if, то запись числа у вас происходит в массив с в ячейку 20, так.. И что получится, БАРДАК Если конечно, я все правильно понимаю.
В этом плане все нормально. А вот с записью масива в файл проблема... и в цикл загонял и скобками огрождал. Неполучилось
IgoreKMaN вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись в файл анна2709 Паскаль, Turbo Pascal, PascalABC.NET 0 14.12.2011 19:43
Запись информации в файл в файл Anubys Win Api 0 04.11.2011 23:27
Запись в файл skovorodkun Помощь студентам 2 23.06.2011 08:53
Запись в файл Akimich Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 07.08.2010 08:05