matriz

1. matriz

Rick
rick2600

(usa Slackware)

Enviado em 20/08/2006 - 20:00h

como fazer uma matriz de inteiros q so aceite 1 caracte por celula..tipo
se o cara digitar 100 seja
mtr[0] = 1
mtr[1] = 0
mtr[2] = 0



  


2. Re: matriz

Gedson Marcelino Lopes da Silva
scoker.br

(usa Debian)

Enviado em 20/08/2006 - 21:04h

Você poderia manipular esse "100" como uma string, e para passar o valor para a matriz andaria em caracter a caracter convertendo para inteiro e jogando para a matriz.


3. Re: matriz

Rick
rick2600

(usa Slackware)

Enviado em 20/08/2006 - 21:15h

rpz...acho q ja fiz isso mas não deu certo não
vou tentar novamente...

vlw


4. Re: matriz

Charles
elbrabo

(usa Slackware)

Enviado em 21/08/2006 - 09:20h

Tente algo do tipo...

#variaveis

int x=0,cont=1,mint[4]={0,0,0,0};
char mchar[4]={0,0,0,0};

#repetição

while((cont)&&(x<4))
{
mchar[x]=getchar();
if((mchar!="\n"))
{
mint[x]=atoi(mchar[x]);
x++;
}
else
cont=0;
}

acho q isso faz oke vc qr ... qlqr coisa posta aki
Vlw ..


5. Re: matriz

Rick
rick2600

(usa Slackware)

Enviado em 21/08/2006 - 11:44h

eu ja tentei usar atoi() em um caractere de uma string..num da certo "segmentation fault"
atoi so converte strings não os caracteres dela :\


6. Re: matriz

Felipe Abella
FelipeAbella

(usa Debian)

Enviado em 21/08/2006 - 17:13h

voce disse que atoi soh converte strings... não seja por isso:

char strTemp[2];
char string[100];
int inteiros[100];
int i;

puts("Entre com um numero");
fgets(stdin, 99, string); // se não me engano

strTemp[1] = '{TTEXTO}';
/* Strs terminam com um nulo, isso eh pra atoi aceitar*/

for (i = 0; string[i]; i++) { //percorrendo str
strTemp[0] = string[i]; // temos str pro atoi
inteiros[i] = atoi(strTemp);
}

-----------

Não testei, mas deve funcionar.



7. Re: matriz

Rick
rick2600

(usa Slackware)

Enviado em 21/08/2006 - 22:15h

consegui fazer o q queria...

...
mat_str[x][0]=getchar();
for ... mat_str[x][1]='\n';
for ... mtr[x]=atoi(mat_str[x]);

valeu a todos


8. ...

Enzo de Brito Ferber
EnzoFerber

(usa FreeBSD)

Enviado em 24/08/2006 - 15:31h

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

void check(char *ptr){
if(!ptr) exit(!ptr);
else return;
}

int main(void){
char *str;
char *aux;
int *m;
int i = 0;
str = (char*)malloc(10*sizeof(char)); check((char*)str);
printf("Digite um numero: "); gets(str);
m = (int*)malloc(strlen(str)*sizeof(int)); check((char*)m);
aux = str;
while(*aux){
*(m+(strlen(str)-strlen(aux))) = *aux - 48;
*aux++;
}
printf("%s\n", str);
for(i=0;i<strlen(str);i++) printf("%d: %d\n", i, *(m+i));
free(str); free(m);
return 0;
}








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts