-
Total de itens
4.466 -
Registro em
-
Última visita
Tudo que Beraldo postou
-
isso foi só um exemplo. Use a notação que costumamos utilizar em Matemática, não em programação comece em zero, senão a posição zero ficará ocupando memória à toa
-
funções devem ser declaradas antes de srem usadas. Há duas formas de fazer isso 1. void darOi() { printf("oi\n"); } int main() { darOi(); return 0; } 2. void darOi(); /* protótipo da função */ int main() { darOi(); return 0; } void darOi() { printf("oi\n"); } Outra forma é criar bibliotecas (que é o mais correto). É preferível ter um arquivo somente com o main(). As outras funções devem ser colocadas em outros arquivos. Modularização
-
VocÊ se refere a '' e ''? Acho que '' não é padrão ANSI C e o gcc não aceita. O Dev deve gerar um Warning (aviso), talvez. Há gcc para Windows. Instale e faça um teste: http://gcc.gnu.org/install/binaries.html Verifique se você habilitou a emissão de Warnings no compilador. Apesar de eles não mipediram a compilação, é bom fazer os programas corretamente, sem emissão de Warnings.
-
exato desculpe-me pelo lapso. :)
-
isso ocorre pois você não especificou a precisão do float faça assim: printf("%.0f%d",seq[i], vezes);
-
Sendo esta matriz: a11 a12 a13 a21 a22 a23 a31 a32 33 Os elementos da diagonmal secundária têm (i + j == 4) Sendo N a ordem da matriz, a soma de cada índice de cada elemento da diagonal secundária (DS) é igual a N + 1. i + j < N+1 => elemento acima da DS i + j < N + 1 => abaixo da DS i + j == N + 1 => elemento da DS Referência: http://forum.imasters.uol.com.br/index.php?showtopic=258480
-
Essa frase não pode ser proferida por um estudante de C Estude ponteiros. É muito importante Dá para fazer esse programa sem ponteiros, mas ficará tudo estático, sem alocação dinâmica. É mais feio, mas.... É só trocar *(str +i) por str
-
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char str[100], *str2; int tam, i = 0, j = 0; fgets(str, 100, stdin); tam = strlen(str); if ( (str2 = (char *) malloc(tam * 2 + 1 * sizeof(char))) == NULL ) { fprintf(stderr, "Erro de alocação\n"); exit(1); } for(i = 0; i < tam; i++) { *(str2 + j) = str[i]; *(str2 + j + 1) = str[i]; j += 2; } printf("%s\n", str2); return 0; }
-
Esqueça gets(). Ela não faz mais parte de sua vida. Só use fgets :P Mas você só usará fgets() para pegar a palavra digitada. Você vai gerar a palavra com letras duplicadas manualmente, caractere por caractere.
-
correcao[j] = '';, não correcao[j] = ''; No gcc, se usar '' o programa nem compila. Tem que usar '' Dá para duplicar letras, sim. Aloque uma matriz com o dobro do tamanho da original. Ao ler a string original salve a letra corrente duas vezes na string de destino Cuidado ao criar o contador para percorrer a string. Ele será incrementado de 2 em 2
-
Não. Cada estrutura representa somente um aluno. Como é um vetor de estruturas, cada índice contém uma estrutura que representa um aluno
-
aqui funciona certinho: #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char frase[50]; char correcao[50]; int i = 0; int j = 0; printf("Digite uma frase \n"); fgets(frase, 50, stdin); int tam = strlen(frase); while(i<tam){ correcao[j] = frase[i]; if(frase[i] == ' '){ while(frase[i] == ' ') i++; } else{ i++; } j++; } correcao[j] = ''; int count = 1; for(j=0;j<tam;j++){ if(correcao[j] == ' '){ count++; } } printf(" há %d palavras na frase: %s \n",count, correcao); return 0; }
-
inicie o contador em 1, poia a primeira palavra não começa com espaço. ;) certifique-se de estar entrando uma frase com espaços...
-
for(i=0;i<5;i++) { for(j=0;j<5;j++){ printf("%d ",m[i][j]); } printf("\n"); } É isso?
-
float notas[120] ??? Há 120 provas?? Você está dividindo por 4 logo após cada soma. Tem que dividir depois de sair do loop Tome cuidado com o local onde vocÊ cria as variáveis. Elas só existem no bloco onde foram criadas. Se forem criadas dentro do for, por exemplo, só existirão naquele bloco De novo, evite o uso de variáveis globais. Passe os dados por parâmetros #include <stdio.h> #include <stdlib.h> #define M 3 #define PROVAS 4 struct alunos { char nome[50]; float notas[PROVAS]; }dados[M]; void media(){ int i,j; for(i=0;i<M;i++) { float media = 0; printf("\n %s \n",dados[i].nome); for(j=0;j<PROVAS;j++) { media += dados[i].notas[j]; } media /= (float) PROVAS; printf("Media: %f ", media); if(media < 6) { printf("\n %s reprovado \n",dados[i].nome); } else{ printf("\n %s aprovado \n",dados[i].nome); } } } int main(void) { int i,j; for(i=0;i<M;i++){ printf("Informe o nome do alunos \n"); scanf("%s", dados[i].nome); for(j=0;j<PROVAS;j++){ printf("Informe as notas do alunos \n"); scanf("%f",&dados[i].notas[j]); } } media(); return 0; }
-
O Durub lembrou uma coisa importante: tem que verificar se é letra. Senão o programa vai trocar números por # também. ;) Dá para usar is_alpha()
-
Na diagonal principal, o primeiro índice é igual ao segundo, logo, dá para fazer isto: for (i = 0; i < LINHAS; i++) { for (j = 0; j < COLUNAS; j++) { matriz[i][j] *= matriz[i][i]; } } matriz sempre teŕ o elemento da linha corrente pertencente à diagonal principal: matriz[1][1], matriz[2][2]...
-
Qual critério quer usar? Quer pegar a última palavra? Ou quer pegar o conteúdo de uma determinada parte da string (por exemplo, iniciar na posição 5 e terminar na 8)?
-
use outro loop para as notas um loop dentro do outro
-
Percorra a string, caractere, por caractere. Se o caractere corrente for consoante, troque-o por #: if ( str[i] != 'a' && str[i] != 'e' ... && str[i] != 'u' ) str[i] = '#';
-
Primeiramente, essa struct não faz sentido. Você criou um vetor dessa struct, mas cada nota é um vetor. O certo é usar a struct para representar cada aluno. Outra coisa:> evite o uso de variáveis globais. Passe-as como parâmetro. Para programas pequenos, não faz diferença, mas em programas garneds, faz muita diferença. O ideal é fazerf a struct assim: typedef struct { char nome[50]; float notas[NUMERO_DE_PROVAS]; } ALUNO; Tendo um vetor para representar as notas, você pode automatizar o cálculo da média, usando um loop.
-
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char frase[50]; char inverter[50]; int i; int j = 0; printf("Digite uma frase \n"); fgets(frase, 50, stdin); int tam = strlen(frase); for(i=tam - 1;i>=0;i--){ inverter[j] = frase[i]; j++; } inverter[j] = ''; printf("\n %s \n \n",inverter); return 0; } Basta ler a string original do fim para o começo.
-
Acho melhor você, primeiro, estudar um pouco sobre vetores. Como ler um vetor, principalmente. Se eu mostrar com código, estarei simplesmente fazendo o exercício para você, e você não aprenderá. Veja: http://www.google.com/search?ie=UTF-8&...amp;q=vetores+c Considerando o vetor: int vet[10]; Existem os índices: vet[0] vet[1] ... vet[9] Os índices começam em zero e vão até (N - 1), onde N é o número de elementos do vetor Para percorrer um vetor assim, usa-se um loop de 0 a 9 for (i = 0; i < 10; i++) { printf("%d\n", vet[i]); }
-
Passagem por valor cria uma cópia de um valor dentro da função. Passagem por referência altera a posição da memória que armazena a informação da variável. Em C, não há passagem por referência, nativamente.Mas usa-se ponteiros para simular esse tipo de passagem http://www.google.com/search?hl=pt-BR&...tro&spell=1