Olá !
Estou iniciando em programação e tenho o seguinte código:
int main(int argc, char *argv[]) {
int matrizCampeonato[10][5];
int time;
int coluna;
int pontuacao;
char x[];
for(time = 0; time < 10; time++){
for(coluna = 0; coluna < 5; coluna++){
if(coluna == 0){
x = "vitorias";
pontuacao = 3;
}
if(coluna == 1){
x = "empates";
pontuacao = 1;
}
if(coluna == 2){
x = "derrotas";
pontuacao = 0;
}
while(coluna < 3){
printf("Informe o total de %c", x[]);
scanf("%d", &matrizCampeonato[time][coluna];
matrizCampeonato[time][3] = matrizCampeonato[time][3] + matrizCampeonato[time][coluna] * pontuação;
}
if(coluna == 3){
printf("\nTotal de pontos = %d\n", matrizCampeonato[time][coluna]);
}
if(coluna == 4){
printf("Informe o saldo de gols: ");
scanf("%d", &matrizCampeonato[time][coluna]);
}
}
}
Em "Informe o total de %c
eu queria que ele colocasse a palavra de acordo com a iteração do laço…Quando for a primeira execução apareceria vitória, depois empate, depois derrota.
Então gostaria que o programa lê-se a variável x.
Com certeza a forma que está ai não é a certa.
Como devo fazer?
Oi Lucas!
Usa a função strcpy para atribuir valores para variáveis string:
http://www.cplusplus.com/reference/cstring/strcpy/
Uma outra dica: cria sempre variáveis string definindo um tamanho (do jeito que você está criando a variavel x, sem informar o tamanho da matriz, poderá acessar áreas inválidas de memória e causar um Access Violation).
Existem formas de definir o tamanho da string depois, usando alocação dinâmica de memória, mas ai é outra coisa
Mais uma coisa: %c é usado para exibir na tela apenas um caractere. Acredito que o que você precisa seja %s que exibe uma string até encontrar um \0.
Boa sorte, e bem-vindo!
Aurimenes
strings em C são arrays de chars com um caracter a mais no final.
a semantica de um array é diferente de um ponteiro em certos aspectos. vc não simplesmente atribui valores a uma “string”. vc pode inicializar tipo
char x[]= “vitorias”;
isso automagicamente aloca um array de 8+1 posições. porem vc nao pode fazer depois
x = qqcoisa
por conta de como C aloca memoria na heap/stack.
o que vc faz
- vc pode estimar o tamanho maximo da string + usar strcpy
- vc pode usar um array de arrays
char mensagens[][9] = { “vitorias”, “empates”, “derrotas”} ;
#include <stdio.h>
#include <stdlib.h>
char mensagens[][9] = { "vitorias", "empates", "derrotas"} ;
int main(){
int i;
for(i=0; i< 3;i++) {
printf("m[%d] = %s\n",i,mensagens[i]);
}
return 0;
}
e por ai vai
Pô, muito obrigado pessoal, valeu mesmo pela ajuda.