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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2010, 22:11   #1
Александе еть я
Пользователь
 
Регистрация: 18.10.2009
Сообщений: 29
По умолчанию массив в си

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

Код:
#include<stdio.h>
#include<iostream.h>
#include <stdlib.h>
#define N 10



void main ()
{
	int a[N], b[N],i,c[2*N]={0},temp;
	FILE *f_in, *f_out,*f;
	char *s=(char*)malloc(N),*s1=(char*)malloc(N);

	if((f_in=fopen("D:\\5.txt","r"))==NULL)
	{
		printf("error\n");
		exit(1);
	}
	else
	printf ("Array of integer numbers A[]:\n");
	for(i=0;i<N;i++)
	while(!feof(f_in))
	{
		fgets(s, 15,f_in);
		c[i]=atoi(s);
		printf ("%d\n", c[i]);

	}

  


if((f=fopen("D:\\6.txt","r"))==NULL)
	{
		printf("error\n");
		exit(1);
	}
	else
	printf ("Array of integer numbers B[]:\n");
	for(i=1;i<N-1;i++)
	while(!feof(f))
	{
		fgets(s1, 15,f);
		c[i+N]=atoi(s1);
		printf ("%d\n", c[i+N]);
		
	}
cout<<endl;
	for(i=0;i<2*N;i++)
	printf("%d\n",c[i]);
	cout<<endl;
	
	    

   for (i=0; i<2*N;i++)
{

    for (i=0; i<2*N;i++)
    {
        if (c[i]>c[i+1])
       {
           temp = c[i];
           c[i] = c[i+1];
           c[i+1]=temp;
       }
    }
}

    for (int j=0; j<2*N;j++)
    {
        cout<<c[j]<<" ";
    }
    cout<<endl;
}
From Stilet: Что вера красиво оформить пост мешает?

Последний раз редактировалось Stilet; 05.05.2010 в 10:43.
Александе еть я вне форума Ответить с цитированием
Старый 04.05.2010, 23:18   #2
ozo
Форумчанин
 
Аватар для ozo
 
Регистрация: 26.04.2010
Сообщений: 328
По умолчанию

В тег code оберните всё
Используй гугль, будь счастлив
hackme@yandex.ru
Блог об archlinux
ozo вне форума Ответить с цитированием
Старый 04.05.2010, 23:20   #3
Crudelis
Пользователь
 
Аватар для Crudelis
 
Регистрация: 05.04.2010
Сообщений: 56
По умолчанию

Код:
for (i=0; i<2*N;i++)
{

for (i=0; i<2*N;i++)
{
if (c[i]>c[i+1])
{
temp = c[i];
c[i] = c[i+1];
c[i+1]=temp;
}
}
}
не пойму для чего здесь два for с одним и тем же i
так же заметил пробел
if((f_in=fopen("D:\\5.txt","r"))==N ULL)
сout<<"Изучаю программирование" точка с запятой
Crudelis вне форума Ответить с цитированием
Старый 05.05.2010, 10:07   #4
mrChester
Я
Форумчанин
 
Аватар для mrChester
 
Регистрация: 24.04.2010
Сообщений: 693
По умолчанию

Код:
#include<stdio.h>
#include<iostream.h>
#include <stdlib.h>
#define N 10



void main ()
{
	int a[N], b[N],i,c[2*N]={0},temp;
	FILE *f_in, *f_out,*f;
	char *s=(char*)malloc(N),*s1=(char*)malloc(N);

	if((f_in=fopen("D:\\5.txt","r"))==NULL)
	{
		printf("error\n");
		exit(1);
	}
	else
	printf ("Array of integer numbers A[]:\n"); 
	i = 0;
             while(!feof(f_in))            //здесь считываем данные из 1-го файла, 
	{                                //нужно чтобы чисел в файле было N
		fscanf(f_in,"%d",c[i])     
		printf ("%d\n", c[i]);
                          i++;
	}

  


if((f=fopen("D:\\6.txt","r"))==NULL)
	{
		printf("error\n");
		exit(1);
	}
	else
	printf ("Array of integer numbers B[]:\n");
	while(!feof(f))   //здесь считываем данные из 2-го файла,
	{
                          fscanf(f,"%d",c[i])
		printf ("%d\n", c[i++]);
		
	}
cout<<endl;
	for(i=0;i<2*N;i++)   //выводим все что считали из файлов
	printf("%d\n",c[i]);
	cout<<endl;
	
	    
   i=0;
   while (i<2*N-1)   //упорядочиваем
   {
       if (c[i]>c[i+1])
       {
           temp = c[i];
           c[i] = c[i+1];
           c[i+1]=temp;
           i=0;
       }
      else i++;
   }
 

  for (int i=0; i<2*N;i++) //выводим упорядоченный массив на экран
    {
        cout<<c[i]<<" ";
    }
    cout<<endl;
}
вообще можно сделать и проще, я опирался на твой исходник
Все персонажи вымышлены, все совпадения случайны.
Если жизнь игра, тогда я её разработчик ©.
mrChester вне форума Ответить с цитированием
Старый 06.05.2010, 09:02   #5
Александе еть я
Пользователь
 
Регистрация: 18.10.2009
Сообщений: 29
По умолчанию

большое спасибо)) а как проще ? и у меня твоя прога виснет..не хочет fscanf обрабатывать((

Последний раз редактировалось Александе еть я; 06.05.2010 в 22:11.
Александе еть я вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40
Массив WiNNi Помощь студентам 7 16.10.2009 20:55
массив Cpluser Общие вопросы .NET 16 04.06.2009 23:15
Упорядочить массив в порядке возрастания и напечатать входной и исходный массив. TheVenny Помощь студентам 3 26.11.2008 15:06