Tag: Learn C

Guião laboratorial n.º 1 – exercício 17

“Desenvolva uma função que efetue a transposição numa matriz N*N de inteiros. A transposição consiste em trocar as linhas pelas colunas. A função recebe como argumentos o endereço inicial da matriz e o valor N (pode assumir que a matriz é quadrada).”

#include <stdio.h>
#define L1 3
#define C1 3

void transpor_q(int l, int c, int *m1)
{
  int *p, *q, aux[l],aux2[l],i,j;
  p=m1;
  q=m1;

  for(i=0; i<l; i++){
      for(j=0; j<c; j++, p++){
          aux[j][i]=*p;
          printf("%d\t", aux[j][i]);
          q=p;
      }
  printf("\n");
  }

  for(i=0; i<l; i++){
      for(j=0; j<c; j++){
          *p=aux[i][j];
          printf("%d\t", *p);
      }
  printf("\n");
  }
}

int main()
{
 int matA[L1][C1]={{1,2,3},{4,5,6},{7,8,9}};

 printf("\nMatriz da soma:\n");
 transpor_q(L1, C1, matA);
 return 0;
}



Tags :

Guião laboratorial n.º 1 – exercício 16

“Desenvolva uma função que some duas matrizes de inteiros, A e B. A função deve receber a informação necessária para efetuar a soma. O resultado da soma deve ficar armazenado na matriz A.”

#include <stdio.h>
#define L1 3
#define C1 2

void adicao(int l, int c, int *m1, int *m2)
{
  int *p, *q, i=0, j=0, aux[l];
  p=m1;
  q=m2;
  for(i=0; i<l; i++){
      for(j=0; j<c; j++, p++, q++){
           aux[i][j]=*p+*q;
           //printf("%d\t", aux[i][j]);
           *p=aux[i][j];
           printf("%d\t", *p);
      }
  printf("\n");
  }
}

int main()
{
 int matA[L1][C1]={{1,3},{1,0},{1,2}};
 int matB[L1][C1]={{0,0},{7,5},{2,1}};

 printf("\nMatriz da soma:\n");
 adicao(L1, C1, matA, matB);
 return 0;
}

+ajudas: LINK

Tags :

Guião laboratorial n.º 1 – exercício 15

“Complete o seguinte programa:
(…)
A função escreve() deve mostrar o conteúdo de uma matriz de inteiros na consola. A função recebe como argumentos o número de linhas, o número de colunas e o endereço inicial da matriz. Neste exemplo, o resultado será o seguinte:

#include <stdio.h>
#define L1 3
#define C1 2
#define L2 4
#define C2 3

void escreve(int n_lin, int n_col, int *m)
{
  int *p, i=0, j=0;
  p=m;
  for(i=0; i<n_lin; i++){
      for(j=0; j<n_col; j++, p++){
          printf("%d\t", *p);
  }
  printf("\n");
}
}

int main()
{
 int mat1[L1][C1]={{1,2},{3,4},{5,6}};
 int mat2[L2][C2]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};

 printf("\nMatriz mat1:\n");
 escreve(L1, C1, mat1);
 printf("\nMatriz mat2:\n");
 escreve(L2, C2, mat2);
 return 0;
}


Tags :

Guião laboratorial n.º 1 – exercício 14

“Desenvolva uma função que receba o endereço inicial e as dimensões (i.e., nº de linhas e nº de colunas) de uma matriz de números inteiros e a preencha com valores aleatórios entre 1 e 100.”


#include <stdio.h>
#include <stdlib.h>

#define linhas 10
#define colunas 10

void aleatorio(int l, int c,int *a){
int *p, i=0,j=0;
p=a;
//random
time_t t;
srand((unsigned) time(&t));

for(i=0; i<l ; i++){
    for(j=0; j<c ; j++,p++){
     *p=rand() % 100;
    }
}
p=a;
for(i=0 ; i<l ; i++){
    for(j=0; j<c ; j++, p++){
      printf("%d\t", *p);
    }
  printf("\n");
}
}
int main()
{
int vector[linhas][colunas]={};
aleatorio(linhas, colunas, vector);



return 0;
}

ajuda(random): link

Tags :

Guião laboratorial n.º 1 – exercício 13.1

“Escreva um programa para verificar se dois vetores, introduzidos pelo utilizador, são perpendiculares. Considere a dimensão máxima dos vetores igual a 25.
Nota: Dois vetores são perpendiculares se o seu produto escalar for zero.”

não me apeteceuuuu

Tags :

Guião laboratorial n.º 1 – exercício 13

“Desenvolva uma função que calcule o produto escalar de dois vetores de números reais a, b, com dimensão n, sabendo que:

A declaração da função poderá ter o seguinte formato:
double produto_escalar (double *a, double *b, int n)

#include <stdio.h>
#include <stdlib.h>

#define tam1 10
#define tam2 10

// nao usei o double porque nao percebi o printf..
int produto_escalar(int *a, int *b, int n){
int *p,*q;
int soma=0;
for(p=a, q=b; p<a+n && q<b+n; p++, q++){
    soma=soma+*p+*q;
    printf("\n%d\t%d\t%d", *p, *q, soma);
}
return soma;
}

int main()
{
int vector1[]={0,1,2,3,4,5,6,7,8,9};
int vector2[]={0,1,2,3,4,5,6,7,8,9};
int valor;
valor=produto_escalar(vector1, vector2, tam1);
printf("\nO produto escalar vem: %d", valor);


return 0;
}


Tags :

Guião laboratorial n.º 1 – exercício 12

“Modifique a função do exercício anterior de modo a permitir comparar matrizes de inteiros (i.e., tabelas com duas dimensões).”


#include <stdio.h>
#include <stdlib.h>

#define linha1 2
#define linha2 2

#define coluna1 2
#define coluna2 2

int vector_igual(int l1, int c1, int v1[l1][c1], int l2, int c2, int v2[l2][c2]){
int *p, *q, verifica=0;
p=v1[0];
q=v2[0];

if(l1==l2 && c1==c2){
  for(p=v1[0], q=v2[0]; p<v1[0]+l1*c1, q<v2[0]+l2*c2; p++,  q++){
      if(*p!=*q){
        verifica++;
      }
      printf("\n%d %d", *p, *q);
    }
}

if(verifica==0){
  verifica=1;
}else{
  verifica=0;
}
return verifica;
}
int main()
{
int vector1[linha1][coluna1]={{0,1},{2,3}};
int vector2[linha2][coluna2]={{0,1},{2,4}};
int valor;
valor=vector_igual(linha1, coluna1, vector1, linha2, coluna2, vector2);
printf("\n1 se os vetores forem iguais, e 0 no caso contrario: %d", valor);


return 0;
}

Tags :

Guião laboratorial n.º 1 – exercício 11

“Desenvolva uma função que receba, como argumentos, os nomes e as dimensões de dois vetores de inteiros e verifique se estes são iguais. Considere que dois vetores de inteiros são iguais se tiverem o mesmo número de elementos e se, em posições equivalentes, tiverem elementos com o mesmo valor. A função devolve 1 se os vetores forem iguais, e 0 no caso contrário. ”

#include <stdio.h>
#include <stdlib.h>

#define TAM1 10
#define TAM2 10

int vector_igual(int *v1, int t1, int *v2, int t2){
int *p, *q, verifica=0;
p=v1;
q=v2;

if(t1==t2){
  for(p=v1, q=v2; p<v1+t1, q<v2+t2; p++,  q++){
      if(*p!=*q){
        verifica++;
      }
      printf("\n%d %d", *p, *q);
    }
}

if(verifica==0){
  verifica=1;
}else{
  verifica=0;
}
return verifica;
}
int main()
{
int vector1[]={0,1,2,3,4,5,6,7,8,9};
int vector2[]={0,1,2,3,4,5,6,7,8,8};
int valor;
valor=vector_igual(vector1, TAM1, vector2, TAM2);
printf("\n1 se os vetores forem iguais, e 0 no caso contrario: %d", valor);


return 0;
}


Tags :

Guião laboratorial n.º 1 – exercício 10

“Desenvolva uma função que receba, como argumentos, o nome e a dimensão de um vetor de números reais e devolva um ponteiro para o elemento que mais se aproxima da média de todos os elementos do vetor.”

#include <stdio.h>
#include <stdlib.h>

#define TAM 10

int mais_proximo(int *v, int t){
int *p, media=0, soma=0, posi=0, dif=0, guarda[t], i, dif2=0;
p=v;

for(p=v;p<v+t;p++){
  soma=soma+*p;
}
media=soma/t;


for(p=v, i=0; p<v+t ; p++, i++){
  dif=media-*p;
  if(dif<0){
    dif=-dif;
  }
  guarda[i]=dif;
  printf("\n%d\t %d\t %d", i, guarda[i], media);
}
for(i=0, dif2=guarda[i]; i<t ; i++){
  if(dif2>guarda[i]){
    posi=i;
    dif2=guarda[i];
    }
}

return posi;
}
int main()
{
int vector[]={11,2,63,4,55,6,106,8,99,1000};
int valor=0;
valor=mais_proximo(vector, TAM);
printf("\nEsta na posicao: %d", valor);


return 0;
}


Tags :

Guião laboratorial n.º 1 – exercício 9

Desenvolva uma função que verifique se existem 3 caracteres consecutivos iguais numa frase. A função recebe como argumento um ponteiro para o início da frase (deve assumir que no final existe um ‘\0’). Deve devolver 1 se existirem 3 caracteres consecutivos iguais, ou 0 no caso contrário. A sua declaração é a seguinte:
int tres_consecutivos(char *frase);


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

#define TAM 10

int tres_consecutivos(char *frase){
int totalc=0,valor=0;
char *p, *q, *e;
p=frase;
q=frase+1;
e=frase+2;

totalc=strlen(frase);
for( ; e<frase+totalc; p++, q++, e++){

    if(*p==*q && *q==*e){
        valor=1;
    }
}

return valor;
}
int main()
{
char frase_completa[]="Qualquer coisaaa assim assada!";
int valor=0;
valor=tres_consecutivos(frase_completa);

if(valor==1){
printf("\nExistem 3 caracteres consecutivos iguais na frase");
}else{
  printf("\nNao existem 3 caracteres consecutivos iguais na frase");
}

return 0;
}

Tags :

Guião laboratorial n.º 1 – exercício 8

Desenvolva um função que determine em que posição de uma tabela de inteiros se encontra o elemento que regista a maior subida em relação ao elemento anterior. Esta posição deve ser devolvida como resultado. A função recebe como argumentos um ponteiro para o início da tabela e o número de elementos que esta contém. A sua declaração é a seguinte:
int maior_subida(int *tab, int dim);

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

#define TAM 10

int maior_subida(int *tab, int dim){
int *p, *q;
p=tab;
q=tab+1;
int dif=0, aux2=0, valor=0,i=0;

for(p=tab; p<tab+dim && q <tab+dim; p++,q++){
    aux2=*p-*q;
    if(aux2<0)
    {
      aux2=-aux2;
    }
    printf("\n%d\t%d\t%d\t%d", i, *p, *q, aux2);
    if(aux2>dif){
      dif=aux2;
      valor=i;
    }
    i++;
}
return valor;
}
int main()
{
int tabela[]={1,3,7,42,22,10,9,7,7,33};
int posicao;
posicao=maior_subida(tabela, TAM);

printf("\nPosicao da maior subira: %d", posicao);

return 0;
}


Tags :

Guião laboratorial n.º 1 – exercício 7

Desenvolva uma função,
void procura_dupla(int a[], int tam, int *prim, int *seg);
que encontre os dois maiores elementos de um vetor de inteiros. A função recebe, como argumentos, o nome e a dimensão do vetor, e os ponteiros para as variáveis onde os dois maiores elementos devem ser armazenados.

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

#define TAM 10

void procura_dupla(int *a, int tam, int *prim, int *seg){
int *p;
p=a;
int aux1=0, aux2=0;
for(p=a; p<a+tam; p++){
 if(*p>aux1){
  aux1=*p;
 }
}
for(p=a; p<a+tam; p++){
 if(*p>aux2 && *p<aux1){
  aux2=*p;
 }
}
*prim=aux1;
*seg=aux2;
}


int main()
{
int tabela[]={1,3,7,5,22,10,9,7,7,33};
int primeiro, segundo;
procura_dupla(tabela, TAM, &primeiro, &segundo);

printf("\nPrimeiro maior: %d", primeiro);
printf("\nSegundo maior: %d", segundo);

return 0;
}


Tags :

Guião laboratorial n.º 1 – exercício 6

“Desenvolva uma função que receba um tabela de inteiros positivos e o seu tamanho e verifique quantos dos elementos da tabela são pares e quantos são ímpares. Deve ainda calcular qual o maior valor presente na tabela e a posição onde ele se encontra.
Por exemplo, se o conteúdo da tabela for:
1 3 7 5 2 10 9 7 7 1
Existem 2 números pares, 8 números ímpares. O maior número é o 10 e está na posição 5.

A função recebe como argumentos um ponteiro para o início da tabela, o número de elementos que esta contém, um ponteiro para o inteiro onde deve colocar o n.º de elementos ímpares, um ponteiro para o inteiro onde deve colocar o n.º de elementos pares, um ponteiro para o inteiro onde deve colocar o maior valor armazenado na tabela e um ponteiro para o inteiro onde deve colocar a posição onde o maior valor se encontra. A sua declaração é a seguinte:
void f(int *t, int tam, int *np, int *ni, int *maior, int *pos);


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

#define TAM 10

void f(int *t, int tam, int *np, int *ni, int *maior, int *pos){
int *p;
p=t;
int conta_par=0, conta_impar=0, m= p[0],posicao=0, aux=0;
for(p=t; p<t+tam; p++){
  if(*p%2==0){
    conta_par++;
  }else{
    conta_impar++;
  }
  if(*p>m){
    m=*p;
  }
}
for(p=t; p<t+tam; p++){
    aux++;
    if(*p==m){
      printf("%d %d", aux, posicao);
      posicao=aux;
    }
}

*np=conta_par;
*ni=conta_impar;
*maior=m;
*pos=posicao;
}


int main()
{
int tabela[]={1,3,7,5,22,10,9,7,7,11};
int n_pares=0, n_impares=0, maior=0, posicao=0;
f(tabela, TAM, &n_pares, &n_impares, &maior, &posicao);


printf("\nTotal de numeros pares: %d", n_pares);
printf("\nTotal de numeros impares: %d", n_impares);
printf("\nO maior numero: %d", maior);
printf("\nPosicao do maior numero: %d", posicao);


return 0;
}

Tags :

Guião laboratorial n.º 1 – exercício 5

“Desenvolva uma função que verifique se uma sequência de caracteres representa um número de telefone da rede fixa PT. A sequência deve obedecer à seguinte propriedade:
– É composta por 9 caracteres, em que o primeiro representa o dígito 2 e os restantes
qualquer um dos 10 dígitos existentes.
A declaração da função é a seguinte: void verifica(char *tel, char *c);
O argumento tel aponta para o primeiro elemento da sequência de caracteres que representa o número de telefone (existe um ‘\0’ no final) e o argumento c aponta para uma variável do tipo caracter onde deve ser colocado o resultado da avaliação. Se o número de telefone analisado for válido deve aí ser colocado o caracter ‘V’. Caso contrário, deve ser colocado o caracter ‘I’.
Nota: pode utilizar a função int isdigit(char c); da biblioteca . Devolve
um valor diferente de 0 se o argumento c for um caracter que represente um dígito.

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

#define TAM 9

void verifica(char *tel, char *c){
int tamanho=0;
tamanho=strlen(tel);

if(tel[0]=='2' && tamanho==TAM){
 *c='V';
}else{
*c='I';
}
}

int main()
{
char numero[]="223456789";
char avaliacao;
verifica(&numero, &avaliacao);
printf("\nVericado (V)valido (I)invalido: %c ", avaliacao);
return 0;
}


Tags :

Guião laboratorial n.º 1 – exercício 4

“Desenvolva uma função que determine quantos elementos de uma tabela de inteiros são iguais à média dos seus dois vizinhos. A função recebe como argumentos um ponteiro para o início da tabela, o número de elementos que esta contém e um ponteiro para uma variável inteira onde deve ser colocado o resultado (i.e., quantos elementos são iguais à média dos seus vizinhos). A sua declaração é a seguinte:

void vizinhos(int *tab, int dim, int *igual);

#include <stdio.h>
#include <stdlib.h>

#define TAM 10

void vizinhos(int *tab, int dim, int *igual){
float media=0;
int *p, conta=0, soma=0;
for(p=tab+1; p<tab+dim; p++){
soma=soma+ *p;
}
media=soma/dim;
for(p=tab+1; p<tab+dim; p++){
if(*p==media){
  conta++;
}
}
printf("\nMedia %f ", media);
*igual=conta;
}

int main()
{
int vector[]={0,1,2,3,4,5,6,7,8,9};
int resultado=0;
vizinhos(vector, TAM, &resultado);
printf("\nTotal de elementos iguais a media dos visizinhos %d ", resultado);
return 0;
}


Tags :

Guião laboratorial n.º 1 – exercício 3

“Desenvolva uma função de nome calculo que receba por parâmetro dois inteiros A e B e dois ponteiros para inteiro P e Q. A função deve calcular a subtração entre os dois inteiros e colocar a diferença no local referenciado por P. Deve igualmente calcular a adição dos dois inteiros e colocar a soma no local referenciado por Q.”

#include <stdio.h>
#include <stdlib.h>

void calculo(int a, int b, int *p, int *q){

*p=a+b;
*q=a-b;
}

int main()
{
  int aa=4,bb=2, soma=0, subtracao=0;
  calculo(aa,bb, &soma, &subtracao);
  printf("a soma vem: %d e a subtracao vem %d:", soma,subtracao);


return 0;
}

Tags :

Guião laboratorial n.º 1 – exercício 2

“Desenvolva uma função que receba, como argumentos, o nome a dimensão de uma tabela unidimensional de números inteiros e que coloque a zero todos os elementos cujo valor seja inferior à média dos elementos dessa tabela. Pode assumir que quando a função for chamada a tabela já foi inicializada.”


#include <stdio.h>
#include <stdlib.h>

#define TAM 10

void recebe(int *d, int t){
int *e,soma=0;
float media=0;

for(e=d;e<d+t;e++){
  soma=soma+ *e;
}
printf("\nsoma: %d", soma);
media=(soma/t);
printf("\nmedia: %f", media);

for(e=d; e<d+t;e++){
  if(*e<media){
    *e=0;
  }
}

}

int main()
{
  int nome[TAM]={0,1,2,3,4,5,6,7,8,9};
  int *q;

  printf("\nAntes ");
  for(q=nome+0;q<nome+TAM;q++){
    printf("%d ", *q);
  }
  recebe(nome, TAM);
  printf("\nDepois ");
  for(q=nome+0;q<nome+TAM;q++){
    printf("%d ", *q);
  }

return 0;
}

Tags :

Guião laboratorial n.º 1 – exercício 1


Considere o seguinte esqueleto da função main():

#include
int main()
{
int a, b, total, *p = &a, *q = &b, *r = &total;

/* completar esta secção */
}

O objetivo do programa é pedir dois números inteiros ao utilizador e guardá-los nas variáveis a, b. A seguir deve somar esses valores e guardar o resultado na variável total. Finalmente deve apresentar ao utilizador o valor da adição. Termine a implementação da função main(), sem nunca se referir explicitamente (i.e., pelo seu nome) às variáveis a, b ou total.”

#include <stdio.h>
#include <stdlib.h>

int main()
{
 int a, b, total, *p = &a, *q = &b, *r = &total;
printf("\nQual o valor de a: ");
scanf("%d",p);
printf("\nQual o valor de b: ");
scanf("%d",q);
*r=*p+*q;
printf("\nO valor da soma: %d", *r);
return 0;
}


Tags :

Guião laboratorial n.º 1

Tópicos da matéria:
– Noções básicas sobre ponteiros e endereços.
– Aritmética de ponteiros
– Tabelas de ponteiros para caracter.
– Argumentos da linha de comando.

Bibliografia:
K. N. King, C Programming: A Modern Approach: Capítulos 11, 12 e 13.

Tags :

Guião laboratorial n.º 0 – exercício 12

“Desenvolva uma função que elimine os espaços em branco supérfluos que poderão existir entre palavras de uma string recebida como argumento.”

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

#define TAM 100
void vazio(char s[TAM]){
int i,conta=0,e=0;
conta=strlen(s);

for(i = 0; i<conta; i++){
  if(s[i] != ' ' && s[i] != '\0'){
    printf("%c", s[i]);
    e=0;
 }
  if(e==0 && s[i] == ' '){
    printf(" ");
 }
 if(s[i] == ' '){
    e++;
 }
}
printf("%d", e);
}


int main ()
{
    char texto[TAM]="1  467 6       4  1 ";
    vazio(texto);

return 0;
}

Tags :

Guião laboratorial n.º 0 – exercício 11

“Desenvolva uma função que verifique se uma string recebida como argumento armazena uma capicua. A função devolve 1 se isso se verificar ou 0 no caso contrário.”
nota: LINK

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

#define TAM 100

int capicua(char s[TAM]){
int i,conta=0, e=0;
conta=strlen(s);

for(i = 0; i<conta; i++, conta--){
  if(s[i] != '\0'){
    if(s[i] == s[conta-1])
    {
      printf("\n%c - %c", s[i],s[conta-1]);
    }else{
    e++;
    }
  }
}
if(e>0){
    return 0;
  }else{
    return 1;
  }

}

int main ()
{
    char texto[TAM]="1467641";
    if(capicua(texto)){
        printf("\ntemos capicua!");
    }else{
        printf("\nnao temos capicua!");
    }
return 0;
}


Tags :

Guião laboratorial n.º 0 – exercício 10

“Desenvolva uma função que, após receber uma string como argumento, escreva cada uma das palavras que a constituem numa linha separada. Considere que as palavras estão separadas por um ou mais espaços em branco, podendo também existir espaços no início e fim da frase. Se a string passada por argumento for: Hoje e Domingo!
No monitor deve surgir:
Hoje
e
Domingo!

#include <stdio.h>
#include <stdlib.h>

#define TAM 100

void comes(char s[TAM]){
int i,conta=0, e=1;

conta=strlen(s);

for(i = 0; i<conta; i++){
 if(s[i] != ' ' && s[i] != '\0'){
    printf("%c", s[i]);
    e=0;
 }
  if(e==0 && s[i] == ' '){
    printf("\n");
 }
 if(s[i] == ' '){
    e++;
 }
}

}

int main ()
{
    char texto[TAM]="   Ola  vamos         programar!  ";
    comes(texto);
return 0;
}


Tags :

Guião laboratorial n.º 0 – exercício 9

“Desenvolva uma função que receba uma string como argumento (i.e., um vetor contendo uma sequência de caracteres terminada com ‘\0’) e que a escreva invertida no monitor. Se a string passada por argumento for: Hoje e Domingo! No monitor deve surgir: !ognimoD e ejoH

#include <stdio.h>
#include <stdlib.h>

#define TAM 100

void inverter(char s[TAM]){
int i,conta=0,aux2=0;
char aux[TAM];

conta=strlen(s);
aux2=conta;

for(i = conta-1, aux2=0; i>=0; i--, aux2++){
    aux[aux2]=s[i];
    conta--;
}
aux[aux2]= '\0';

printf("%s\n", aux);

}

int main ()
{
    char texto[TAM]="Ola viva programar!";
    inverter(texto);
return 0;
}


+ajudas: LINK

Tags :

Guião laboratorial n.º 0 – exercício 8

“Um quadrado mágico é uma matriz 3×3 contendo valores entre 1 e 9 (sem repetições), de tal forma que a soma dos elementos de qualquer uma das linhas, colunas e diagonais é sempre igual. A figura seguinte mostra um exemplo de um quadrado mágico:
6 1 8
7 5 3
2 9 4
desenvolva uma função que verifique se uma matriz 3×3 passada como argumento é um quadrado mágico. A função devolve 1 se isso se verificar ou 0 no caso contrário.”

#include <stdio.h>
#include <stdlib.h>

#define LINHAS 3
#define COLUNAS 3
#define TAM 9

int quadradomagico(int v[TAM]){
int i,j, conta=0, vector[LINHAS][COLUNAS];

//preencher e mostrar
for(i=0; i<LINHAS ; i++){
        for(j=0; j<COLUNAS && conta < 10; j++){
        vector[i][j]=v[conta];
        conta++;
}}
printf("\n conta  %d\n", conta);
for(i=0; i<LINHAS; i++){
        for(j=0; j<COLUNAS; j++){
        printf("%d",vector[i][j]);
}
printf("\n");
}
return 0;
}

int main ()
{
    int dados[TAM]={6,1,8,7,5,3,2,9,4};
    quadradomagico(dados);
return 0;
}


Tags :