Programa compila e exculta no linux mas compila e nao executa no linux

1. Programa compila e exculta no linux mas compila e nao executa no linux

Cristiam
Dean_Winchester

(usa Outra)

Enviado em 21/06/2013 - 17:07h

criei um programa no linux
ele compila e execulta sem problemas
mas quando pego o codgo fonte e compilo no windows nao execulta
segue codgo fonte.
#include <stdio.h>
int main ( int argc, char **argv)
{
int esc,total,total_tr,sair,i,j,n,k,finalizar,esc2,sair2,w,e,h,g;
float valores[3]={120.0,0.25,50.0};
float custo_tr,custo_t,custo_g;
int sair3;
char data[n][11];
int controle[n][4];// a quantidade de dias esta ligado as linhas da matriz
total=total_tr=finalizar=0;

do
{
do
{
printf("\n \n ");
printf("=========================================================================\n");
printf(" MENU PRINCIPAL ");
printf("\n==========================================================================\n ");
printf("1-Inserir Valores\n");
printf(" 2-Inserir Leituras\n");
printf(" 3-Calcular Custos \n"); //criando menus
printf(" 4-Mostras Resumo \n");
printf(" 5-Sair \n");
printf("===========================================================================\n ");
scanf("%d",&esc);
printf("\n \n ");
if(esc>=1||esc<=5)
{

sair=1;
}
else
{
printf("Escolha invalida, Tente novamente!!!! \n");
sair=0;
}
}
while(sair==0);

switch(esc)
{
case 1:
{
printf("Por favor digite o valor do aluguel \n");
scanf(" %f",&valores[0]);
printf("Por favor digite o valor da copia \n");
scanf(" %f",&valores[1]);
printf("Por favor digite o valor da troca de toner \n");
scanf(" %f",&valores[2]);
printf("=========================================================================\n");
printf(" Valores atualizados com sucesso !!!!!! \n ");
printf("=========================================================================\n");
break;
}
case 2:
{
total=total_tr=0;
custo_tr=custo_t=custo_g=0.00;

printf("Digite quantos dias deseja calcular \n");
scanf("%d",&n);





for(i=0;i<n;i++)//for utilizado para adicionar leituras na quantidade de dias digitado pelo usuario.
{

printf("\n Digite a data: \n");
scanf("%*c%[^\n]",&data[10]);
if(i==0)//Armazenando os dados na primeira vez para poder fazer a troca de leitura atual para ultima leitura
{
printf("Digite o valor da ultima leitura \n");
scanf("%d",&controle[0]);

printf("Digite o valor da leitura Atual \n ");
scanf("%d",&controle[1]);



total=total+controle[1]-controle[0];//armazenando quantidade de xeroz tirados nos dias
controle[0][2]=(controle[0][1]-controle[0][0]);//alocando quantidade

}
else
{

printf("Digite o valor da leitura Atual \n ");
scanf("%d",&controle[1]);


controle[0]=controle[i-1][1];
total=total+(controle[1]-controle[i-1]); //armazenando quantidade de xeroz tirados nos dias
controle[2]=(controle[1]-controle[i-1][1]); // alocando quantidade de xeroz tirados
//printf("total :%d \n",controle[2]);
}




do
{
printf("=======================================================================\n");
printf(" Digite 1 se houve troca de tonner ou 0 se nao \n ");
printf("=======================================================================\n");
scanf("%d",&esc2);
if(esc2>=0||esc<=1)//verificar se a escolha esta entre as opçoes 1e 0
{
if(esc2==1)
{
total_tr++;//armazenando vezes de troca de toner
controle[3]=total_tr;//alocando na matrix
//printf("total tr%d",total_tr);
sair=1;
}
else
{
controle[3]=0;
}




}
else
{
printf("Escolha invalida, tente novamente \n");//volta ao menu de troca do tonner
sair=0;
}
if((i+1)==n)
{
custo_tr=(float)total_tr*valores[2];
custo_t=(float)total*valores[1];


}

}
while(sair2==0);





}


break;
}
case 3:
{
custo_g=valores[0]+total_tr-total;
printf("==============================================================================\n");
printf("custo: R$:%0.2f",custo_g);
printf("\n============================================================================\n \n \n ");
break;
}
case 4:
{
printf("%d\n",controle[0][2]);
printf("==============================================================================\n");
printf("Data | Ultima Leitura | Leitura Atual | Total de Copias |Troca de Toner\n");
printf("==============================================================================\n");
for(k=0;k<n;k++)
{

printf("\n");
printf(" %s - %d - %d - %d - %d ",data[k+1],controle[k][0],controle[k][1],controle[k][2],controle[k][3]);




}
printf("\n===========================================================================\n");
printf("Total Arrecadado com copias: R$:%0.2f \n",custo_t);
printf("Despesa com Tonner: R$:%0.2f\n",custo_tr);
printf("Despesa com Aluguel: R$:%0.2f \n",valores[0]);
printf("=============================================================================\n");
break;
}
case 5:
{
printf("========================================================================\n ");
printf(" Ate mais !!!! ");
printf("\n=======================================================================\n");
finalizar=1;//sair do programa se o usuario digitar 5
break;
}
}
}
while(finalizar==0);

return(0);
}




  


2. Re: Programa compila e exculta no linux mas compila e nao executa no linux

Daniel Lara Souza
danniel-lara

(usa Fedora)

Enviado em 21/06/2013 - 17:11h

tem que ver o erro ,
pode ser que tem que adicionar mais alguma include eu acho


3. Re: Programa compila e exculta no linux mas compila e nao executa no linux

wellington
wellingtonsr

(usa Slackware)

Enviado em 21/06/2013 - 17:26h

Compila e não execulta ou não apenas não compila?


4. Re: Programa compila e exculta no linux mas compila e nao executa no linux

Luis R. C. Silva
luisrcs

(usa Linux Mint)

Enviado em 21/06/2013 - 17:56h

Tem que ver que muitas funções e sintaxe usadas em C no Linux não funciona no Windows e vice-versa.

Poste o erro que é retornado.


5. Re: Programa compila e exculta no linux mas compila e nao executa no linux

Cristiam
Dean_Winchester

(usa Outra)

Enviado em 22/06/2013 - 16:58h

nao da erro na compilação ele apenas nao execulta no windowns


6. Re: Programa compila e exculta no linux mas compila e nao executa no linux

Luis R. C. Silva
luisrcs

(usa Linux Mint)

Enviado em 22/06/2013 - 18:48h

Exatamente, qual é o erro na execução?


7. Re: Programa compila e exculta no linux mas compila e nao executa no linux

???
gokernel

(usa Linux Mint)

Enviado em 22/06/2013 - 19:50h

Olá, tabulei o seu código e postei aqui:

http://codepad.org/8ILoQd9H


Ao compilar no windows retornou esses erros:
----------------------------------------------
D:\temp>gcc ajuda.c -o ajuda -Wall
ajuda.c: In function `main':
ajuda.c:68: warning: char format, different type arg (arg 2)
ajuda.c:73: warning: int format, different type arg (arg 2)
ajuda.c:76: warning: int format, different type arg (arg 2)
ajuda.c:84: warning: int format, different type arg (arg 2)
ajuda.c:86: error: incompatible types in assignment
ajuda.c:88: error: incompatible types in assignment
ajuda.c:103: error: incompatible types in assignment
ajuda.c:109: error: incompatible types in assignment
ajuda.c:6: warning: unused variable `j'
ajuda.c:6: warning: unused variable `w'
ajuda.c:6: warning: unused variable `e'
ajuda.c:6: warning: unused variable `h'
ajuda.c:6: warning: unused variable `g'
ajuda.c:9: warning: unused variable `sair3'
----------------------------------------------

...

COMPILAÇÃO ERRO LINHA 86:
controle[0] = controle[i-1][1];

modifique isso:
-----------------------------------
char data[n][11];
int controle[n][4];// a quantidade de dias esta ligado as linhas da matriz
-----------------------------------

PARA:
-----------------------------------
#define VALOR_CONSTANTE 10 // ou um valor escolhido

char data[VALOR_CONSTANTE][11];
int controle[VALOR_CONSTANTE][4];
-----------------------------------

E da proxima vez use a tag CODE ...






8. gokernel

Cristiam
Dean_Winchester

(usa Outra)

Enviado em 22/06/2013 - 20:09h

vc sabe me dizer por que entao ele compila e funciona direitinho no linux?


9. Re: Programa compila e exculta no linux mas compila e nao executa no linux

ian cléver sales fernandes
ianclever

(usa Arch Linux)

Enviado em 22/06/2013 - 20:21h

não sei qual o erro, mas no windows para funcionar geralmente tem que limpar o buffer do teclado após cada scanf assim:


scanf("%d",&var);
fflush(stdin);



10. Re: Programa compila e exculta no linux mas compila e nao executa no linux

???
gokernel

(usa Linux Mint)

Enviado em 22/06/2013 - 20:39h


Observe esse pequeno exemplo em windows:



#include <stdio.h>

#define SIZE 5

int main (void)
{
int controle[SIZE][SIZE];
int i = 1;

// ESSE CODIGO NAO COMPILA NO WINDOWS ...
//
// controle[0] = controle[i-1][1];

// ASSIM COMPILA:
//
controle[0][0] = controle[i-1][1];

return 0;
}











Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts