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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2009, 21:16   #1
Darh
Пользователь
 
Регистрация: 13.09.2009
Сообщений: 75
По умолчанию Помогите с РГР на Си(есть коды, нужно подправить)

1. Дан двумерный массив А[5][5], сформировать пять одномерных массивов по следующем принципу:
1 одномерный массив – в двумерном массиве А первая строка – сумма 1 и 2 элементов, 2и3, 3и4, 4 и 5.
2 одномерный массив - в двумерном массиве А вторая строка – сумма 1 и 2 элементов, 2и3, 3и4, 4 и 5.
И так далее

2.Массив, заданный в первой задаче считать из файла и отсортировать:
1. По возрастанию по строкам сортировка вставкой
2. По убыванию по столбцам сортировка выборкой

3.Вычислить сумму бесконечного ряда:
1. Для указанного количества членов ряда
2. С заданной точностью
(точность и количество членов ряда вводятся клавиатуры)
Darh вне форума Ответить с цитированием
Старый 27.12.2009, 21:16   #2
Darh
Пользователь
 
Регистрация: 13.09.2009
Сообщений: 75
По умолчанию

Первое задание работает, выкладываю его, тк во втором задании нужно считать его результат.
Код:
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#define FNAME "D:\\F.txt.\0"\
void main()
{
	FILE *b;
	int a[5][5],t;
	int a1[4],a2[4],a3[4],a4[4],a5[4];
	int i,j;
	srand(time(NULL));
	b=fopen(FNAME,"wt");
	for(i=0;i<5;i++)
	{
		for(j=0;j<5;j++)
		{

			a[i][j] = rand()%10;
			printf("%i ",a[i][j]);
		}
		printf("\n");		
	}
	
	printf("\n");

	//				
		for(j=0;j<4;j++)
		{
			a1[j]=a[0][j]+a[0][j+1];
			printf ("%i\t", a1[j]);
			fprintf(b,"%i\t", a1[j]);
		}		
		printf("\n\n");
		  fprintf(b, "\n");

		//
		for(j=0;j<4;j++)
		{
			a2[j]=a[1][j]+a[1][j+1];
			printf ("%i\t", a2[j]);
			fprintf(b,"%i\t", a2[j]);
		}
		printf("\n\n");
		  fprintf(b, "\n");
		//
		for(j=0;j<4;j++)
		{
			a3[j]=a[2][j]+a[2][j+1];
			printf ("%i\t", a3[j]);
			fprintf(b,"%i\t", a3[j]);
		}
		printf("\n\n");
		  fprintf(b, "\n");
		//
		for(j=0;j<4;j++)
		{
			a4[j]=a[3][j]+a[3][j+1];
			printf ("%i\t", a4[j]);
			fprintf(b,"%i\t", a4[j]);
		}
		printf("\n\n");
		  fprintf(b, "\n");
		//
		for(j=0;j<4;j++)
		{
			a5[j]=a[4][j]+a[4][j+1];
			printf ("%i\t", a5[j]);
			fprintf(b,"%i\t", a5[j]);
		}
		printf("\n\n");
		  fprintf(b, "\n");
		getch ();
	}
Во втором задание в первом методе сортировки непонятно что делает, во втором методе не сортирует последнюю строку.
Код:
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "locale.h"
#define FNAME "D:\\F.txt.\0"
void main ()
{
	FILE *b;
	int a[5][4], t[5][4];
	int i,j,z=0;
	int x;
	int min,k;
	int max;
	setlocale(LC_ALL, "rus");	
	b=fopen(FNAME,"r");
		if(b==NULL)
	{
	printf("Ошибка");
	}	
	for(i=0; i<5; i++)
	{
		for(j=0; j<4; j++)
		{
			fscanf(b,"%i",&a[i][j]);
		}
	}
	fclose(b);
	printf("Массив, считанный из файла:\n");

   	for(i=0; i<5; i++)
	{
		for(j=0; j<4; j++)
		{
			printf("%i\t ",a[i][j]);
		}
	printf("\n");
	}
	printf("\n1. Сортировка вставкой по возрастанию по строкам:\n");
	for(z=0;z<4;z++)
	{
		for(i=0;i<5;i++)
                {
                        if(i==0)t[z][i]=a[z][i];
                        else
                        {
                                for(j=i;j>=1;j--)
                                {
                                                if(a[z][i]<t[z][j-1])
                                                {
                                                        t[z][j]=t[z][j-1];
                                                        t[z][j-1]=a[z][i];
                                                }
                                                else if(j==i)t[z][j]=a[z][i];
                                }
                        } 
		}
	}
                        for(int k=0;k<5;k++)
						{
		for(z=0;z<4;z++)
                        {
                                if(k<=i)
                                {
                                        printf("%i\t ",t[k][z]);
										if(z==4) printf("\n");
                                }
                                else 
                                {
                                        t[k][z]=0;
                                        printf("%i \t",t[k][z]);
                                }       
                        }
                        printf("\n");
                }
        printf("\n");     
			printf("\n2. По убыванию по столбцам, методом прямого выбора: \n");

	for(z=0;z<4;z++)
	{
		for(i=0;i<5;i++)
		{
			max=a[0][z];
			k=0;
			for(j=0;j<4;j++)
			{
				if(a[j][z]>max)
				{
					max=a[j][z];
					k=j;
				}
			}
			t[i][z]=max;
			a[k][z]=NULL;
		} 
	}
	printf("\n");
	
	for(i=0; i<5; i++)
	{
		for(j=0; j<4; j++)
		{
			printf("%i\t ",t[i][j]);
				
		}
	printf("\n");
	}
fclose (b);
getch ();
}
В третьем задание не могу понять, как решить ряд с заданной точностью.
Код:
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "locale.h"
#include "math.h"
void main ()
{
	int x;
	int n;
	float S,y,e;
	S=0;
	setlocale(LC_ALL, "rus");
	printf("Введите количество членов ряда:");
	scanf("%i", &n);
	for (x=1; x<=n; x++)
	{
		y=5/(float(x*(x+1)+x));
		printf ("%f \n", y);
		S=S+y;
	}
	printf("\n");
	printf("Сумма:%f", S);
	printf("\n\n");
    printf("Введите точность:");
	scanf("%i", &e);
		getch ();
}
Помоги пожалуйста, очень на вас надеюсь.
Darh вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйсто с задачкой, исходник есть!! нужно преобразовать все это в С++2005! спс за рание! immortalwar Помощь студентам 0 10.06.2009 09:31
нужно всего лишь подправить! Татяна Паскаль, Turbo Pascal, PascalABC.NET 6 20.05.2009 21:17