-
Total de itens
884 -
Registro em
-
Última visita
Tudo que vangodp postou
-
Comparação entre duas datas no C++
pergunta respondeu ao Maristela Fialho de vangodp em Tutoriais & Dicas - C, C++
É possível mandar o arquivo com as datas também? É possível mandar o arquivo com as datas também? É possível mandar o arquivo com as datas também? -
Como assim através de linha de comandos? Não entendo. Para criar uma interface você precisa usar alguma biblioteca que permita isso, ou inclusive usando a api do sistema.
-
Comparação entre duas datas no C++
pergunta respondeu ao Maristela Fialho de vangodp em Tutoriais & Dicas - C, C++
Ola! Seja bem vinda. Poste seu código usando o botão <> para poder lhe dar uma melhor ajuda. -
Gerador de Senhas Alfanúmericas de 6 dígitos
pergunta respondeu ao morftec de vangodp em Grupo de Estudos
tenho um gerador de cpf. Se você nos proporcionar as informações de tal código sejamos capazes de criar um. -
pow tem o seguinte aspecto: double pow (double base, double exponent); Alguns exemplos com pow podem ser: printf ("7 ^ 3 = %f\n", pow (7.0, 3.0) ); printf ("4.73 ^ 12 = %f\n", pow (4.73, 12.0) ); printf ("32.01 ^ 1.54 = %f\n", pow (32.01, 1.54) ); Cujo os resultados são: 7 ^ 3 = 343.000000 4.73 ^ 12 = 125410439.217423 32.01 ^ 1.54 = 208.036691 Resumindo... pow trabalha com tipo double. Sua formula t1*(q^(t-1))/(q-1) ficaria mais ou menos como: t1*( pow(q,(t-1)) )/(q-1) Sugiro que todas as variáveis sejam do tipo double. E na parte do t-1 você faça um cast explicito... tipo: t-(double)1 ou t-1.0, pois no suposto caso de que t seja outro tipo que não um double, acontecerá um cast implícito, e se estaria passando outro tipo que não seria double, poderia produzir resultados indesejados. Se funcionou diga aqui.
-
Usando includes. Primeiro você deve saber alguns dados. 1º sempre que for usar uma variável, função, ou qualquer outra coisa em C ou C++ deve haver sido declarada previamente. você por exemplo, não pode usar um int se ele não existe. Certo? >_< Então supostamente a função deve haver sido declarada previamente antes de main para poder invoca-la. Se não estiver declarado é como se não existe. você pode usar a Ferrari que não existe na sua garagem? Não né? Ou sim? >_< 2º A declaração de uma função antes do main pode ser substituída pelo prototipo, ou seja, você pode levar a declaração da função depois do main, ou inclusive por a declaração em outro arquivo, porem deve deixar o prototipo antes do main sempre. 3º Basta você por o prototipo em um arquivo .h e por a declaração em um arquivo .c, logo fazer o include do .h onde você quiser usar a tal função. Busque informação sobre arquivos de cabeçalho no C. De uma olhada nesses 2 videos: No video ele leva a declaração ao arquivo .h porem não é a única forma de se fazer isso, nem a melhor, a melhor é como eu falei, deixar o prototipo no arquivo .h e a declaração no .c, mas para começar funciona ambas formas porque como falei ou deve haver declarado a função ou o prototipo antes do main, para indicar que a função existe.
-
#include <stdio.h> #include <stdlib.h> char* nota ( float media ) { //pre: Digitar a media do aluno //pos: Classificação da nota if ( ( media <= 10.0f ) && ( media >= 9.0f ) ) { return( "Nota A" ); } if ( ( media <= 8.9f ) && ( media >= 7.0f ) ) { return ( "Nota B" ); } if ( ( media <= 6.9f ) && ( media >= 5.0f ) ) { return ( "Nota C" ); } if ( ( media <= 4.9f ) && ( media >= 0.0f ) ) { return ( "Nota D" ); } return ( "Voce digitou nota invalida" ); } int main() { float media; printf ( "Digite a media do aluno\n" ); scanf ( "%f", &media ); printf ( "%s", nota ( media ) ); return ( 0 ); } você deve por o f ao lado quando fizer uma comparação tipo media == 5.0f, caso contrario o compilador tomará 5.0 como um double, seria como estar comparando um float com um double, sempre vai dar erro.
-
Não lhe entendo muito bem... você quer usar pow()?? Deve incluir math.h se for assim
-
prove trocar seu scanf por esse: scanf("%c%*c",&letra); você tem lixo no buffer você tem lixo no buffer
-
Fiz algumas mudanças no seu código. #include <iostream> using namespace std; float media_vetorA ( float v[], int n) { float somatoria = 0; int npositivos = 0; for ( int i = 0; i < n; i++ ) { if ( v[i] > 0 ) { somatoria = somatoria + v[i]; npositivos++; } } somatoria = somatoria / npositivos; return somatoria; } int main() { float vetor[] = {80, 30, 40, 50}; int n = sizeof(vetor)/sizeof(float); float soma = 0; soma = media_vetorA ( vetor, n ); cout << "Media aritmetica dos positivos: " << soma << endl; return 0; } Procure usar sempre um array predefinido antes de sair pedindo valores por teclado, isso lhe ajudará na hora de testar o programa com maior rapidez, pois é chato ficar preenchendo números por enquanto seu programa não arroja os resultados esperados, melhor você entrega uns dados já preenchidos para ele mastigar e assim você se ocupa somente da parte lógica(Sem perda de tempo). já comentei isso aqui: https://www.scriptbrasil.com.br/forum/topic/186902-duvida/ Se o que você precisa é a media dos números pares somente precisa passar o vetor e seu tamanho. A divisão deve ser feita fora dos laços, depois de haver feito a soma. Espero ter ajudado. Agora tente adapta-lo ao seu problema(Pedir dados por teclado).
-
Seja bem vindo ao forum. Use o botão <> para postar o código. Seu código tem erros... por exemplo faltam partes como as i dos índices dentro dos [ ] nos lacços fors a causa de não usar <>.
-
primeiro quero dizer que você poderia ter um vetor predefinido para realizar provas e assim não ter que preencher o vetor cada vez que rodar o código, isso vai lhe economizar em tempo e esforço. Vamos ver um exemplo: O seguinte código ilustra como poderia ter um vetor preenchido de forma previa em tempo de compilação ou ter um vetor que será preenchido em tempo de execução. int main ( int argc, char** argv ) { const unsigned int TAM = 50; //#define MANUALMENTE //DEScomentar essa linha para pedir o vetor por teclado manualmente em tempo de execução. Ou comentar essa linha para que o vetor seja preenchido em tempo de compilação #ifdef MANUALMENTE int vetor[TAM]; for ( i = 0; i < TAM; i++ ) { printf ( "Digite o numero %d:", i + 1 ); scanf ( "%d", &vetor[i] ); } #else int vetor[TAM] = { { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, { 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, { 22, 22, 23, 24, 25, 26, 27, 28, 29, 30}, { 33, 32, 33, 34, 35, 36, 37, 38, 39, 40}, { 44, 42, 43, 44, 45, 46, 47, 48, 49, 50} }; #endif // MANUALMENTE Se a linha a palavra "MANUALMENTE" estiver definida(#ifdef MANUALMENTE) antes de "#ifdef MANUALMENTE" se executará o código seguinte, que pedirá os números por teclado porem pode cansar de tanto digitar, sobretudo se o vetor for de grande tamanho como no seu caso: int vetor[TAM]; for ( i = 0; i < TAM; i++ ) { printf ( "Digite o numero %d:", i + 1 ); scanf ( "%d", &vetor[i] ); } Caso contrario se executará o seguinte código e se ignora o anterior(como se não existisse): int vetor[TAM] = { { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, { 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, { 22, 22, 23, 24, 25, 26, 27, 28, 29, 30}, { 33, 32, 33, 34, 35, 36, 37, 38, 39, 40}, { 44, 42, 43, 44, 45, 46, 47, 48, 49, 50} }; É muito útil agilizar na hora de realizar provas no seu programa pois ou estará definido uma parte ou a outra. Pense nisso. Agora bem... Como você falou, seu programa deve pedir um numero e comparar se esta no vetor, caso seja assim esse numero fica zerado, mas logo você diz que o programa deve informar os numeros que foram zerados, isso da a entender que o programa pede varios numeros e não somente um. Sendo assim acho que seria algo como isso: unsigned int i; int num; while(true){ printf ( "Digite um numero aleatorio: " ); scanf ( "%d", &num ); if ( num != -1 ){ for ( i = 0; i < TAM; i++ ) { if ( num == vetor[i] ) vetor[i] = 0; } }else break; } O programa pedirá números até que o usuário digite -1, quando digitar -1 vai sair do laço caindo na parte que imprime o vetor e o programa termina. O código completo seria esse: #include <iostream> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main ( int argc, char** argv ) { const unsigned int TAM = 50; //#define MANUALMENTE //DEScomentar essa linha para pedir o vetor por teclado manualmente #ifdef MANUALMENTE int vetor[TAM]; for ( i = 0; i < TAM; i++ ) { printf ( "Digite o numero %d:", i + 1 ); scanf ( "%d", &vetor[i] ); } #else int vetor[TAM] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 32, 33, 34, 35, 36, 37, 38, 39, 40, 44, 42, 43, 44, 45, 46, 47, 48, 49, 50 }; #endif // MANUALMENTE unsigned int i; int num; while(true){ printf ( "Digite um numero aleatorio: " ); scanf ( "%d", &num ); if ( num != -1 ){ for ( i = 0; i < TAM; i++ ) { if ( num == vetor[i] ) vetor[i] = 0; } }else break; } for (i=0; i<TAM; i++){ printf("%d, ", vetor[i]); } getchar(); return 0; } Basicamente onde você errou foi em não por a parte que pede o numero dentro de um laço, pois seu programa pediria um só numero e não vários. De uma boa estudada nesse código, você pode aprender muitas coisas úteis. Se tiver duvida pergunte.
-
Ajuda com estrutura de dados, URGENTE! C++/C
pergunta respondeu ao Gaahl de vangodp em Grupo de Estudos
Sua pergunta é muito genérica. Em fóruns se costuma responder duvidas pontuais. Poste sua tentativa, comente os pontos onde tiver duvidas e lhe ajudaremos. -
Não duvido... mas um fórum vai dirigido a aquelas pessoas que fizeram a consulta inicial. Responder uma pergunta dez anos depois já não é de interesse do usuário. Que seja útil para ti depois de mais 2 anos é outra historia, certamente passaram por aqui muitos outros estudantes. Não costumamos, e digo com s, porque penso que a maioria age da mesma forma.. a responder perguntas baseadas em possíveis usuários "futuros", isso é um fórum, se não encontrar o que anda buscando faça uma consulta que certamente alguém lhe responde. E sinceramente não recomendo usar conio, excetuando em contados casos. Pense do ponto de vista da sua aplicação ser livre de uma determinada plataforma, se você usar essa biblioteca, seu programa fica atado a windows. Imagine que você escreveu um programa com 50 mil linhas de código usando conio... Como você faria para levar o programa a outra plataforma como por exemplo Linux? Parou para pensar? É bem melhor fazer uso de funções 100% padrão, assim seu código será livre como um passarinho. Agora cada qual é dono do seu nariz para usar o que bem entender heheh.
-
Talvez se me desse uma oportunidade.... =D
-
Alguns IDEs tem uma má costume de incluir bibliotecas implicitamente. Certamente você fez uso da função system, e essa função requer que você faça a inclusão de forma explicita de umas das seguintes bibliotecas: #include <stdlib.h> ou #include <windows.h> Tenha como preferência usar stdlib.h já que é mais portável. A função system está declarada dentro de qualquer uma dessas bibliotecas. Beleza? >_< Tenha claro que sempre que o usuário usar uma função na qual não criou, é preciso ser feito a inclusão da biblioteca onde dita função foi declarada, o fato que funcione é que o dev c++ detectou que não foi feita a inclusão de uma das duas(ou as duas) bibliotecas, e fez isso de forma "não transparente" para o usuário, por isso o erro. Não todos os ides fazem isso.
-
O importante é você entender o algoritmo. Normalmente você precisa usar papel e lápis para buscar uma solução, não tenha vergonha disso. Esse pdf é interessante hsuehshe. Qual é o nome dele? Esse pdf é interessante hsuehshe. Qual é o nome dele?
-
Agora passamos a explicar como trabalha o programa. Imaginamos que temos essa matriz de 5 por 5: Devemos começar pela primeira posição da matriz e girar no sentido horário. Isso se traduz em 4 laços WHILE e não for por uma razão... Quando queremos usar um laço para algo que não sabemos o tamanho que vai ter devemos usar um laço while, e realmente esse é um caso desses, por que podemos receber matrizes de diferentes tamanhos, porem o mais importante é que se o programa detectar que a matriz não te a ordem correta tipo 1,2,3,4..... ...n*n, o programa deverá ser detido imediatamente, pois não há sentido continuar averiguando nada ya que a matriz claramente não é uma matriz "inca", esse é o motivo maior para adotar while em vez de for. Capiche? >_< Laços for são para percorrer uma matriz de inicio a fim e nunca deverá ser detido, assim quando você ver um for você sabe que ele vai percorrer todos os dados, e quando ver um while você sabe que o programa pode deter antes de terminar o array. Então agora que sabemos que devemos usar while e não for vamos continuar. O programa deve percorrer os laterais do programa como mostra a imagem acima. uma matriz maior de 4 elementos será considerado mais de uma matriz será algo como: Se temos a matriz: 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 ...no fundo será analisado desta forma: //primeiro passo 1 2 3 4 5 16 6 15 7 14 8 13 12 11 10 9 //segundo passo 17 18 19 24 20 23 22 21 //terceiro passo 25 ... em três passos. É dizer... o algoritmo fará o mesmo e cada um dos passos anteriores. Normalmente usaremos um while que repita a outros 4 whiles que comprovarão cada um dos lado da matriz. Então o programa vai pegar primeiro e vai entrar no while externo: //primeiro 1 2 3 4 5 16 6 15 7 14 8 13 12 11 10 9 Vai analisar cada um dos lados while interno 1(1,2,3,4,5), while interno 2(6,7,8,9), while interno 3(10,11,12,13) e while interno 4(14,15,16) Logo o programa repete a operação com o while externo, mas agora com: //segundo 17 18 19 24 20 23 22 21 while interno 1(17, 18, 19), while interno 2(20, 21), while interno 3(23, 23) e while interno 4(24) Tendeu? No caso de uma matriz de 5 por 5 o ultimo valor seria 25. Quando no while externo o contador chegar a 25 o programa vai parar. Na teoria basta você ter um contador que comece em 1 e ir comparando ele com cada posição da matriz, essa é a lógica. Se o numero do contador diferir ao da matriz o programa deve parar imediatamente pois não se trata de uma matriz inca. Se o numero do contador diferir ao da matriz o programa deve parar imediatamente pois não se trata de uma matriz inca.
-
Aqui deixo um exemplo... e logo abaixo explico: #include<stdio.h> int main(){ int m1[4][4] = { { 1, 2, 3, 4 }, { 12, 13, 14, 5 }, { 11, 16, 15, 6 }, { 10, 9, 8, 7 } }; int m2[5][5] = { { 1, 2, 3, 4, 5 }, { 16, 17, 18, 19, 6 }, { 15, 24, 25, 20, 7 }, { 14, 23, 22, 21, 8 }, { 13, 12, 11, 10, 9 } }; int m3[6][6] = { { 1, 2, 3, 4, 5, 6 }, { 20, 21, 22, 23, 24, 7 }, { 19, 32, 33, 34, 25, 8 }, { 18, 31, 36, 35, 26, 9 }, { 17, 30, 29, 28, 27, 10 }, { 16, 15, 14, 13, 12, 11 } }; int i; //indice int n = 6; //usamos a matriz de 5 x 5 quando n é igual a 5 int inicio = 0; //inicio int fim = n-1; //Marca o tamanho da matriz que vai de 0 até n-1 int contador = 1; //contador que usaremos para conferir se o numero vai de 1 até n*n int (*m)[n] = m3; //m aponta para uma das matrizes acima(se quiser pode criar uma com dados personalizados por teclado e passar para m) //repete o laço até que contador alcance n*n, que seria 25 no caso de uma matriz de 5 por 5. cinco multiplicado por 5 é 25, esse seria o ultimo valor de uma matriz inca de 5 por 5 while( contador <= (n*n) ){ //Ponto A: checamos a linha horizontal superior (de esquerda a direita) i=inicio; while(i <= fim){ if( m[inicio][i]==contador ){ printf("%d, ", m[inicio][i]); contador++; }else{ printf("%d, ", m[inicio][i]); printf("Não é uma matriz inca. contador %d", contador); return 1; } i++; } //ponto B: checamos a linha vertical direita ( de acima para baixo ) i=inicio+1; while(i <= fim){ if( m[i][fim]==contador ){ printf("%d, ", m[i][fim]); contador++; }else{ printf("%d, ", m[i][fim]); printf("Não é uma matriz inca. contador %d", contador); return 2; } i++; } //Ponto C: checamos a linha horizontal inferior ( de direita para esquerda ) i=fim-1; while(i >= inicio){ if( m[fim][i]==contador ){ printf("%d, ", m[fim][i]); contador++; }else{ printf("%d, ", m[fim][i]); printf("Não é uma matriz inca. contador %d", contador); return 3; } i--; } //Ponto D: checamos a linha vertical esquerda ( de abaixo para cima ) i=fim-1; while(i >= inicio+1){ if( m[i][inicio]==contador ){ printf("%d, ", m[i][fim]); contador++; }else{ printf("Não é uma matriz inca. contador %d", contador); printf("%d, ", m[i][fim]); return 4; } i--; } inicio ++; fim--; } return 0; } O programa tem 3 matrizes pré estabelecidas, m1, m2 e m3). Faço isso para não perder tempo entrando dados por teclado. Deixo em suas mão arrumar essa parte para pedir os dados por teclado. O programa tem um ponteiro chamado m que nada mais é que um ponteiro a uma matriz, assim podemos passar qualquer matriz para esse ponteiro e o programa trabalhará corretamente. Por exemplo... se queremos passar a matriz m1 para averiguar se é uma matriz inca(caracol), é só mudar a linha int (*m)[n] = m1. Se por outro lado você quer passar uma matriz própria tipo matriz[10][10]... é só pegar a linha int (*m)[n] = m3 e mudar para isso int (*m)[n] = matriz, m vai apontar para sua matriz e trabalhar como se fosse a mesma, isso faz o programa mais flexível já que permite você passar qualquer matriz para ele. Outro ponto a destacar é que dependendo do tamanho da matriz, por exemplo se a matriz é de 5*5, a variavel n deve ser 5(n=5). Então resumindo... se eu quero passar int matriz[19][19] para o ponteiro m devo atribuir 19 a n: int matriz[19][19]; int n = 19; int (*m)[n] = matriz; OK?! O resto do programa vai trabalhar corretamente independentemente do tamanho da matriz se esses dados forem preenchidos corretamente. O programa tem 3 matrizes pré estabelecidas, m1, m2 e m3). Faço isso para não perder tempo entrando dados por teclado. Deixo em suas mão arrumar essa parte para pedir os dados por teclado. O programa tem um ponteiro chamado m que nada mais é que um ponteiro a uma matriz, assim podemos passar qualquer matriz para esse ponteiro e o programa trabalhará corretamente. Por exemplo... se queremos passar a matriz m1 para averiguar se é uma matriz inca(caracol), é só mudar a linha int (*m)[n] = m1. Se por outro lado você quer passar uma matriz própria tipo matriz[10][10]... é só pegar a linha int (*m)[n] = m3 e mudar para isso int (*m)[n] = matriz, m vai apontar para sua matriz e trabalhar como se fosse a mesma, isso faz o programa mais flexível já que permite você passar qualquer matriz para ele. Outro ponto a destacar é que dependendo do tamanho da matriz, por exemplo se a matriz é de 5*5, a variavel n deve ser 5(n=5). Então resumindo... se eu quero passar int matriz[19][19] para o ponteiro m devo atribuir 19 a n: int matriz[19][19]; int n = 19; int (*m)[n] = matriz; OK?! O resto do programa vai trabalhar corretamente independentemente do tamanho da matriz se esses dados forem preenchidos corretamente.
-
ok vou dar uma olhada
-
beleza... matriz inca é o que está descrito nesse problema de aqui certo?: http://www.guj.com.br/t/verificar-matriz-inca/281923
-
O fato de usar o botão<> é que os foruns, e digo com s, porque todos os fóruns costumam "comer" letras já que por exemplo faz com que o texto saia em itálico desta forma asda e coma a parte que possivelmente tenha seu código como índice de alguns laços. Esse é só um exemplo. Perceba que você declarou uma matriz: porem aqui a pagina comeu o índice i Dai quem vai lhe ajudar acaba por copiar o código com erros, isso se traduz em perda de tempo para nós que desejamos lhe ajudar. Muitas vezes não respondo a causa disso. É chato ficar explicando isso para cada novo usuário que entra a diário. Tende facilitar para o programador que lhe irá ajudar, comente as partes onde você acha que esteja problema, qualqur coisa que facilite para nós será melhor para você mesmo. Ok?! Arrume isso e lhe ajudo. Perceba que você declarou uma matriz: porem aqui a pagina comeu o índice i Dai quem vai lhe ajudar acaba por copiar o código com erros. Isso se traduz em perda de tempo para nós que desejamos lhe ajudar. Muitas vezes não respondo a causa disso. É chato ficar explicando isso para cada novo usuário que entra a diário. Tende facilitar para o programador que lhe irá ajudar, comente as partes onde você acha que esteja problema, qualqur coisa que facilite para nós será melhor para você mesmo. Ok?! Arrume isso e lhe ajudo. você arrumou usando o botão<> mas seu código tem erros como lhe expliquei: A matriz parece um vetor... não copie o código do fórum, faça do seu IDE. você arrumou usando o botão<> mas seu código tem erros como lhe expliquei: A matriz parece um vetor... não copie o código do fórum, faça do seu IDE.
-
primeiro de tudo você precisa saber que sempre tem que postar o código usando o botão<> tal como na imagem e escolhendo a sua linguagem: você deve expor qual linguagem e qual é o tipo de tarefa a realizar pois somos pessoas que temos nossa vida fora de aqui, não podemos perder tempo em coisas banais como tentar adivinhar o que é que seu programa faz, ou o que você espera que ele faça, se você nos ajudar nós lhe ajudaremos. Tendeu? Qualquer detalhe que sirva você deve por, como linguagem, padrão usado, sistema operativo etc etc etc. Caso contrario pode que seu tema não encontre ajuda ou encontre bem menos do esperado, somente são conselhos para aumentar e agilizar a obtenção de ajuda. Sorte! O fato de usar o botão<> é que os foruns, e digo com s, porque todos os fóruns costumam "comer" letras já que por exemplo faz com que o texto saia em itálico desta forma asda e coma a parte que possivelmente tenha seu código como índice de alguns laços. Esse é só um exemplo.
-
vou por o código aqui. Está bem comentado, mas realmente só tem uma forma de se fazer isso, e é praticando muito com manipulação de strings. Não espere seu professor passar exercícios, comece a praticar muito com strings, passe uma frase de minúscula a maiúsculas, intercale letras tipo AeIoU, etc, invente exercícios e tente resolve-los, só assim você será capaz de dominar a linguagem, se ficar esperando o professor passar exercícios vai ficar com carências. Por exemplo você pode buscar isso para lhe ajudar no google: "exercícios de manipulação de strings em C" #include<stdio.h> #include <ctype.h>//isalpha int main(){ char frase[100] = "Tiago - Ramão Benitez - Soares"; // Implementar a entrada por scanf vc >_< char vogalSem[]="aeioua", vogalCom[]="áéíóúã"; //precisa complementar para mais acentos tipo ê, ô etc int i,j; //Elimina acentos (Troca 'á' por 'a' ou 'ã' por 'a'). //Explicação: Se a letra analizada coincidir com algumas das acentuadas que estão no vetor vogalCom, troca essa letra pela que está na mesma posição, porem do vetor vogalSem for (i=0;frase[i]!='\0';i++){ for(j=0;j<sizeof(vogalCom);j++){ if(vogalCom[j]==frase[i]) frase[i]=vogalSem[j]; } } //troca tudo o que não for letras por espaços //Explicação: Se a letra analizada não(!) for uma das que estão no alfabeto troca a letra por um espaço for ( i=0; frase[i]!='\0' ; i++ ) { if ( !isalpha(frase[i]) ){ frase[i]=' '; } } //Separamos a frase em uma matriz de 3 palavras(sem espaços pois são apenas 3 palavras e não uma frase) char palavra[3][100]; sscanf(frase,"%s %s %s", palavra[0], palavra[1], palavra[2] ); //Agora precisamos dar formato para a saida pela tela: //apelido paterno em maiuscula for (i=0; palavra[2][i]!='\0' ;i++ ) { putchar( toupper(palavra[2][i]) ); } putchar(' '); //Imprime um espaço //nome em minuscula for (i=0; palavra[0][i]!='\0' ;i++ ) { putchar( tolower(palavra[0][i]) ); } putchar(' '); //Imprime um espaço //apelido materno em minuscula for (i=0; palavra[1][i]!='\0' ;i++ ) { putchar( tolower(palavra[1][i]) ); } getchar();//pausa return 0; } Isso aqui é praticar, praticar e mais praticar, não há outra forma. Sorte!
-
lista encadeada PROBLEMAS COM LISTA ENCADEADA, me ajudem por favor....
pergunta respondeu ao Ivanildo Gomes de vangodp em C, C++
Sempre pelo começo meu jovem. >_< Exatamente em que parte você está com problema? Na parte sobre carregar os dados do arquivo? Se for assim mande o arquivo para dar uma olhada. E se for possível indicar qual é a linguagem....