3
respostas

Dúvida com código

Pessoal, preciso fazer um códio que leia um array de tamanho 100. Esses valores podem ser float, double, inteiros negativos ou positivos. Depois o programa deve imprimir a posição do array e os valores dessa posição que contenham numeros menor ou igual a 10. Fiz o seguinte código, mas toda vez que digito um número com vírgula o código para de ler os dados e já imprime todas as posições com sendo A[X] = 9., mas quando ditigo inteiros o código funciona normal Algúem sabe o que há de errado?

#include <stdio.h> 

int main(){
  int j,i;
  double A[100];    
  for(j=0; j<100; j++){
    scanf("%ld", &A[j]);
  } 
  for(i = 0; i<100; i++){
    if(A[i] <= 10)
    printf("A[%d] = %ld\n", i , A[i]);
    }
return 0;
}
3 respostas

A maioria das linguagens de programação não usa a virgula para separar as casas decimais de um número. Ele usa o ponto tenta ao invés de entrar no programa 9,2, entrar 9.2

Estou usando o ponto (quis dizer vírgula só pra demonstrar que é um número decimal não inteiro).

Ah Mauro, desculpa. Agora que vi

Vc deveria usar o %lf ao invés de %ld. o %dé a mascara que recebe números inteiros apenas. Para números fo tipo float ou double usamos o %f.