Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Turbo C| C++] переделка проги с помощью функции


Автор: Nigga 22.12.2007, 15:32
Помогите, пожалуйста переделать готовую программу с использованием функции. суть:прога считывает из файла "f.dat" следующую инфу:
7
1 3 4 -7 0 5 8
и с использованием считываемого массива создаёт матрицу, каждая следующая строка которого создаётся путём умножения каждого элемента на порядковый номер этой строки(начиная с 1).
Вся прога работает, но написана без функции....(
Код

#include<stdio.h>
#include<alloc.h>
#include<math.h>
main()
{
int i,j,*a,**b,n;
FILE *in;
clrscr();
if((in=fopen("f.dat","r"))==NULL)
    {
printf("\n HeT Takoro Fau`/la");exit(1);
    }
fscanf(in,"%d",&n);
a=(int*)malloc(n*sizeof(int));
b=(int**)malloc(n*sizeof(int*));
for(i=0;i<n;i++)
    {
b[i]=(int*)malloc(n*sizeof(int));
    }
for(i=0;i<n;i++)
    fscanf(in,"%d",&a[i]);
for(i=0;i<n;i++)
  {
  int x;
  x=a[i];
  for(j=0;j<n;++j)
    b[i][j]=x*(j+1);
         }
for(i=0;i<n;i++)        
         {
  for(j=0;j<n;j++)
           {
    printf("%5.d",b[j][i]);
            }printf("\n");printf("\n");
}

Автор: DrWeb 22.12.2007, 18:12
Во первых получше пиши код-то есть чтобы его легко было читать;)
Во вторых - Зачем ты указатели используешь?
В третьих-здесь функции лишние так прога короткая, но раз надо с функцией,то вот пожалуйста
Код

#include<stdio.h>
#include<alloc.h>
#include<math.h>
#include <conio.h>
#include <stdlib.h>

void func1();

void func1(int *a,int **b,int n,FILE *fil)
{
 a=(int*)malloc(n*sizeof(int));
 b=(int**)malloc(n*sizeof(int*));
 for(int i=0;i<n;i++){
 b[i]=(int*)malloc(n*sizeof(int));}
 for(i=0;i<n;i++)
  fscanf(fil,"%d",&a[i]);
 for(i=0;i<n;i++)
 {
  int x;
  x=a[i];
  for(int j=0;j<n;++j)
   b[i][j]=x*(j+1);
 }
 for(i=0;i<n;i++)
  for(int j=0;j<n;j++)
   printf("%5.d",b[j][i]);
 printf("\n");printf("\n");
}

main()
{
 int i,j,*a,**b,n;
 FILE *in;
 clrscr();
 if((in=fopen("f.dat","r"))==NULL){
 printf("\n HeT Takoro Fau`/la");exit(1);}
 fscanf(in,"%d",&n);
 func1(a,b,n,in);
 getch();
}



Автор: Nigga 22.12.2007, 21:52
спасибо DrWeb, выручил!!!!))
а насчёт укащателей, я их наугад вставил....вродь работает ну и хорошо))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)