-
Posts
6.318 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que devair1010 postou
-
C função para tirar acentos de um imput do usuario
devair1010 respondeu ao tópico de HUGO_dev_ze em C/C#/C++
@arfneto nesse programa original /** O programa todo **/ #include <ctype.h> #include <locale.h> #include <stdio.h> #include <string.h> char* tratar_string(char*); int main(void) { char* entrada[] = { "Hugo Jósé", "ÄÅÁÂÀÃäáâàãÉÊËÈéêëèÍÎÏÌíîïìÖÓÔÒÕöóôòõÜÚÛüúûùÇç" "abcdefghijklmnopqrstuvwxyz", "Clube do Hardware", "Ação ou Inércia?", "abcdefghijklmnopqrstuvwxyz"}; // muda o locale para mostrar os simbolos "certos" printf("locale original: %s\n", setlocale(LC_ALL, NULL)); char* local = setlocale(LC_ALL, "pt-BR"); if (local == NULL) return -1; printf("locale alterado para \"%s\"\n", local); // N testes, assim pode editar o vetor e criar outros size_t N = sizeof(entrada) / sizeof(char*); printf("\n%zd testes", N); // faz os testes, claro for (size_t t = 0; t < N; t += 1) { printf("\ \n\ \n\ teste %zd de %zd:\n\ antes: \"%s\" (%zd)\n", 1+t, N, entrada[t], strlen(entrada[t])); printf( "\ depois: \"%s\" (%zd)\n", tratar_string(entrada[t]), strlen(entrada[t])); } return 0; } char* tratar_string(char* palavra) { const char antes[] = "ÄÅÁÂÀÃäáâàãÉÊËÈéêëèÍÎÏÌíîïìÖÓÔÒÕöóôòõÜÚÛüúûùÇç" "abcdefghijklmnopqrstuvwxyz"; const char depois[] = "AAAAAAAAAAAEEEEEEEEIIIIIIIIOOOOOOOOOOUUUUUUUCC" "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; char* letra = palavra; while (*letra != 0) { char* alvo = (char*) antes; // as letras while (*alvo != 0) { // compara com todas if (*alvo != *letra) { // essa não eh alvo += 1; continue; } *letra = *(depois + (alvo - antes)); // troca } letra += 1; // avanca na palavra } return palavra; // retorna o texto alterado }; deu esses erros , e coloquei essa img pois no editor não dá para copiar e colar as msg de erros usando a variável " entrada " char* entrada[] = como ponteiro , não compilava no v studio , e depois dessa mudança compilou , por que vai cancelar ? o limite de size_t é 256 ? , entendi Que entrada[15][100] será 15 vezes de 100 , igual a 1500 e dividido por 4 , que é o tamanho de um char será igual a 375 , mas imaginei que fosse bytes , e não bits , . . . ! testando o que está na matriz entrada , pois com números não precisa desses colchetes [0] "..." e no codeblocks , que creio que esteja usando o compilador GNU GCC e também o minGW , compilou de boa , e logo depois de mudar a locale saiu e retornou -1 e infelizmente esse outro também não compilou no v studio . com tempo vou tentar descobrir o que pode ter acontecido . -
C Escreva um algoritmo que imprima o plano cartesiano e leia as coordenadas (X,Y)
devair1010 respondeu ao tópico de Cleverton Dutra em C/C#/C++
@Cleverton Dutra para usar cores essa biblioteca conio não vai , precisa ser a #include <conio2.h> , e creio qu,e uma matriz de caracteres de 20 x 20 seja o ideal , -
C++ Programa que lê nomes e depois imprime em ordem alfabética
devair1010 respondeu ao tópico de nicolly_barbosa18 em C/C#/C++
@nicolly_barbosa18 voce pode usar um vetor de string , para armazenar os nomes lidos do teclado usando o comando cin>>variavel; que le ate encontrar um espaco em branco , e se quiser o sobremome tambem use o ( cin.getline ) que vai ler tudo que for digitado , e para ordenar alfabeticamente voce pode usar o comando sort(nome_do_vetor); , e depois escrever na tela o conteudo do vetor já ordenado com a funcao std::cout << vetor[posicao] << end; e depois que voce fizer um codigo sobre esse exericio , poste ele aqui e ajudaremos se precisar de alguma correção , . , . -
C função para tirar acentos de um imput do usuario
devair1010 respondeu ao tópico de HUGO_dev_ze em C/C#/C++
@arfneto usando o codeblocks , esse código compilou e retornou -1 significando que setlocale encontrou NULL , e não mostrou as letras iguais ao que você postou , e no visual studio não compilou , e modificando o vetor ponteiro para string compilou mas não mostrou também , qual seria o motivo ? #define _CRT_SECURE_NO_WARNINGS #include <ctype.h> #include <locale.h> #include <stdio.h> #include <string.h> char* tratar_string(char*); int main(void) { char entrada[15][100] = { "Hugo Jósé", "ÄÅÁÂÀÃäáâàãÉÊËÈéêëèÍÎÏÌíîïìÖÓÔÒÕöóôòõÜÚÛüúûùÇç" /*"abcdefghijklmnopqrstuvwxyz", "Clube do Hardware", "Ação ou Inércia?", "abcdefghijklmnopqrstuvwxyz" */ }; printf("Entrada zero -> %s\n", entrada[1]); // muda o locale para mostrar os simbolos "certos" printf("locale original: %s\n", setlocale(LC_ALL, NULL)); char* local = setlocale(LC_ALL, "pt-BR"); if (local == NULL) return -1; printf("locale alterado para \"%s\"\n", local); // N testes, assim pode editar o vetor e criar outros size_t N = sizeof(entrada) / sizeof(char*); printf("\n%zd testes", N); // faz os testes, claro for (size_t t = 0; t < N; t += 1) { printf("\ \n\ \n\ teste %zd de %zd:\n\ antes: \"%s\" (%zd)\n", 1 + t, N, entrada[t], strlen(entrada[t])); printf( "\ depois: \"%s\" (%zd)\n", tratar_string(entrada[t]), strlen(entrada[t])); } return 0; } char* tratar_string(char* palavra) { const char antes[] = "ÄÅÁÂÀÃäáâàãÉÊËÈéêëèÍÎÏÌíîïìÖÓÔÒÕöóôòõÜÚÛüúûùÇç" "abcdefghijklmnopqrstuvwxyz"; const char depois[] = "AAAAAAAAAAAEEEEEEEEIIIIIIIIOOOOOOOOOOUUUUUUUCC" "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; char* letra = palavra; while (*letra != 0) { char* alvo = (char*)antes; // as letras while (*alvo != 0) { // compara com todas if (*alvo != *letra) { // essa não eh alvo += 1; continue; } *letra = *(depois + (alvo - antes)); // troca } letra += 1; // avanca na palavra } return palavra; // retorna o texto alterado }; -
VisualG Exercício de algoritmo no VisualG
devair1010 respondeu ao tópico de ana caroline 2323 em Programação - iniciantes
@ana caroline 2323 o enunciado pede a média dos rendimentos e dos filhos , então precisa usar o contador e ir somando os rendimentos em uma variáveL e o número de filhos em outra variáveL , depois de sair do loop , faça a média do total de rendimento dividido pela quantidade de pessoas pesquisadas e o mesmo para a média de filhos , e seu código poderia ser assim : algoritmo "calculars" //O GDF realizou uma pesquisa entre vários habitantes do DF, coletando dados so //bre o rendimento familiar e o número de filhos de cada família. O GDF quer //saber: //- A média dos rendimentos da população; //- Média do número de filhos. var mediarendimento , mediafilho : real rendfamiliar , rendpopulacao : real // pois pode ter casas decimais nfilhos , contador : inteiro // só inteiros mesmo resp : caractere // usar caractere inicio // rendfamiliar:= 0 não precisa inicializar , pois todas ass variaveis // no VisualG sao globais e assim contem o valor zero resp:= "sim" // nem aqui tambem não precisa , pois o valor de resp // eh "" vazio enquanto resp <> "não" faca // não precisa desses parenteses , pois // eh apenas uma comparacao escreva ("Digite o rendimento familiar: ") leia (rendfamiliar) rendpopulacao := rendpopulacao + rendfamiliar escreva ("Digite o número de filhos: ") leia (nfilhos) nfilhos := nfilhos + nfilhos contador := contador + 1 escreval ("deseja continuar sim ou não: ") leia (resp) fimenquanto escreval("qtd de filhos ",nfilhos) escreval("rendimentos ",rendpopulacao) media := rendpopulacao div contador escreval("a média de rendimento é ",media) media := nfilhos div contador escreval("a média de número de Filhos é ",media) fimalgoritmo -
C++ programa que leia uma frase e diga se ela possui algum erro
devair1010 respondeu ao tópico de WellitonArts em C/C#/C++
@WellitonArts creio que você possa usar um arquivo com as letras acentuadas ou não e os símbolos permitidos e usar um laço de repetição para percorrer a frase toda , que é uma string , e comparar cada caractere dessa string com o conteúdo do arquivo para saber se é um caractere válido , além de compara o modo de escrever , por exemplo se depois de cada palavra da frase precisa ter um espaço ou dois espaços , etc , e outras coisa .. ,,, .... , , .. , -
@Daniel Peixoto a Que você se refere ? , pois o comando for não tem nada a ver com par ou ímpar , ele é apenas um laço de repetição , que se repete quantas vezes você informa para ele repetir , e as comparações de par ou ímpar podem ficar dentro desse Loop For .
-
C Como mostrar o índice de um vetor (matriz) em C
devair1010 respondeu ao tópico de Vitor1233 em C/C#/C++
@Vitor1233 você já criou as variáveis , então na hora de escrever o maior e menor use essas variáveis no printf e para inicializar a variável menor você pode usar o INT_MAX , da biblioteca limits.h , e o maior com o INT_MIN , e seu código poderia ser assim : #define _CRT_SECURE_NO_WARNINGS // para usar scanf e outras funcoes no visual studio #include <stdio.h> #include <limits.h> int main() { int m[2][2] = {0} , i= 0,j = 0, menor = INT_MAX, maior = INT_MIN, imenor = 0 , jmenor = 0, imaior = 0 , jmaior = 0; printf("Entre com os 4 valores da matriz 2x2 \n"); for (i = 0; i < 2; i++) { for (j = 0; j < 2; j++) { scanf("%d", &m[i][j]); if (m[i][j] < menor) { menor = m[i][j]; // define o menor imenor = i; // marca a Linha com a posicao desse menor jmenor = j; // marca a Coluna com a posicao desse menor } if (m[i][j] > maior) { maior = m[i][j]; // define o maior imaior = i; // marca a Linha com a posicao desse maior jmaior = j; // marca a Coluna com a posicao desse maior } } } printf("Na Linha %d e Coluna %d esta O menor numero e: [%3d]\n", imenor, jmenor, menor); printf("Na Linha %d e Coluna %d esta O maior numero e: [%3d]\n", imaior, jmaior, maior); return 0; } -
C Função para remover acentos dando erro quando faço "fgets"
devair1010 respondeu ao tópico de HUGO_dev_ze em C/C#/C++
@HUGO_dev_ze a função fgets não remove os acentos e nem converte as letras acentuadas para não acentuadas , ela serve para ler uma quantidade de caracteres , que pode ser especificado , ou usar o comando sizeof (nome_da_variavel) , para que seja especificado automaticamente , quase igual a função scanf , mas fgets pega o newline digitado e scanf não , e IDE é o próprio codeblocks , e console é aquela janela preta que o codeblocks mostra ao executar seu código , e TerminaL é aquela tela preta do DOS , também chamada de prompt de comandos do windows , -
C++ QuickSort - Ordenação dentro de arquivo
devair1010 respondeu ao tópico de Weverson Meireles em C/C#/C++
@arfneto o compilador não mostra nenhuma msg de erro , mas mostra apenas essa janela de debug , e testando , vi que funciona até antes do while com fscanf e aí encerra a execução , testei com arquivo sem extensão e com a extensão ".txt". no visual studio também não descobri qual compilador está nesse IDE . -
@Vitor1233 você pode ver no próprio compilador / IDE as msg de erro que o compilador informa na janela em baixo do código , e ali está informando que você usou uma variável que não foi criada antes de ser usada e também não colocou o fecha_parênteses no final da linha do printf , #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> /* Para utilizarmos as funões printf e scanf (impressão e leitura de dados respectivamente). */ #include<locale.h> /* Para utilizarmos a função setlocale que faz o printf() imprimir caracteres da língua Portuguesa como á, ã, ç*/ int main() { float L [500] = {}, A [500] = {}, AREA[500] = {}; int contador = 0 ; // contador geralmente comecam em zero ! setlocale(LC_ALL, "Portuguese"); // essa biblioteca eh problematica for ( int i = 0; i < 2; i++) // crie a variavel de controle do loop dentro // do loop e o vetor só vai de zero ate enquanto for menor que o limite { // digitar 1000 numeros precisa ter muita paciência , teste com apenas 2 printf("digite o valor da largura : "); // msg scanf("%f", &L[i]); // Recebendo os valores dos comprimentos // prefira duas barras quando for um comentario de apenas uma linha // e barra e asterisco quando for um bloco com muitas linhas printf("digite o valor da altura : "); // msg scanf("%f", &A[i]); // Recebendo os valores das alturas if (L[i] > 5)contador++; // conta qtd de larguras maiOr de cinco } printf("\n\t %d objetos com larura maior que cinco !\n",contador); for (int j = 0; j < 2; j++) { AREA[j] = L[j] * A[j]; printf("\n\t Áreas [%d] em metros quadrados = %7.2f", j, AREA[j]); // faltou esse fecha_paranteses } printf("\n\n"); return 0; }
-
C++ QuickSort - Ordenação dentro de arquivo
devair1010 respondeu ao tópico de Weverson Meireles em C/C#/C++
@arfneto eu não quis modificar o código do @Weverson Meireles e apenas para ler do arquivo e inserir no vetor , e também a conversão de string para float seria que se houver algum número decimal no arquivo vai converter ele também , e usando int "%d" , na leitura com fscanf está apresentando erro que não consegui descobrir o que é e nem como concerta-lo , e lendo como string não deu nenhum erro , a imagem do erro no visual studio usando a função para ler com int no arquivo ainda com o vetor global , para não modificar o código do @Weverson Meireles float ler_do_arquivo(char nom[]) { FILE* arq; //char num[20] = {}; int num = {}; int i = -1; arq = fopen(nom, "r"); if (!arq)return -1; while (fscanf(arq, "%d", num) != EOF) { vetor[++i] = num;//atof(num); if (i > 9) break; /// limite de qtd de numeros no vetor printf("%d ", vetor[i]); } printf("\n\n"); fclose(arq); return 0; } -
C++ QuickSort - Ordenação dentro de arquivo
devair1010 respondeu ao tópico de Weverson Meireles em C/C#/C++
@Weverson Meireles para pegar os números que estejam em um arquivo , você pode usar o comando fopen para abrir o arquivo , que esteja na mesma pasta desse programa , e ler com a função fscanf , que lê um conjunto de caracteres até encontrar um espaço em branco , ou também o EOF , então para ler e armazenar no vetor pode ser assim : #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> #include <time.h> const int MAX = 10; int vetor[MAX]; /// desaconselhacel usar variaveis global int quickSort(int inicio, int final); float ler_do_arquivo(char a[]); /// prototipo das funcoes int main(void) { int i = 0, j, igual; char nom[30] = { "qq_coisa" }; srand(time(NULL)); printf("o nome do arquivo "); fgets(nom, sizeof(nom), stdin); nom[strlen(nom) - 1] = 0; ler_do_arquivo(nom); /// preencher(); o vetor será preenchido com numeros do arquivo for (i = 0; i < 10; i++) { printf("%d\n", vetor[i]); } puts("Pos ordenacao\n\n"); quickSort(0, 10); for (int i = 0; i < MAX; i++) { printf("%i\n", vetor[i]); } } int quickSort(int inicio, int final) { int i, j, pivo, aux; i = inicio; j = final - 1; pivo = vetor[(inicio + final) / 2]; while (i <= j) { while (vetor[i] < pivo && i < final) { i++; } while (vetor[j] > pivo && j > inicio) { j--; } if (i <= j) { aux = vetor[i]; vetor[i] = vetor[j]; vetor[j] = aux; i++; j--; } } if (j > inicio) quickSort(inicio, j + 1); if (i < final) quickSort(i, final); return 0; } float ler_do_arquivo(char nom[]) { FILE* arq; char num[20] = {}; int i = -1; arq = fopen(nom, "r"); if (!arq)return 4096.2048; while (fscanf(arq, "%s", num) != EOF) { vetor[++i] = atof(num); if (i > 9) break; /// limite de qtd de numeros no vetor printf("%d ", vetor[i]); } printf("\n\n"); fclose(arq); return 2048.65535; } -
@Lobo_doartico Ola , vejo que voce esta bem animado querendo criar jogos , e isso eh bom , ter algum projeto , e o que fazer , e o mais importante eh o aprendizado que voce conseguirah ao se aventurar nessa caminhada , e para criar uma engine não precisa de outra não , pois a primeira foi criada sem que houvesse uma já pronta , voce pode usar a linguagem c++ junto com alguma biblioteca grafica como a SDL , ou a Allegro , Qt , ou outras , e tambem a linguagem Assembly , entao bons estudos e sorte
-
C por algum motivo esse programa em C não esta compilando
devair1010 respondeu ao tópico de pedro16 em C/C#/C++
@pedro16 você colocou LC_ALL em minúsculas , e a identação ajuda a detectar erros , e também tem esses else's com as chaves sem nada dentro , e seu código compilou Aqui no codeblocks ,. , ,,, #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<iostream> #include<string.h> #include<math.h> #include<locale.h> int main() { setlocale(LC_ALL,"portuguese"); // esse comando aqui , se funcionar no seu PC // esta bom ,mas nos outros será difícil que funcione int v1[10], v2[10], u[20], i[10], x, y; for(x=0;x<10;x++) { printf("digite o valor %i do primeiro conjunto: ",x+1); scanf("%i",&v1[x]); u[x]=v1[x]; } for(x=0;x<10;x++) { printf("digite o valor %i do segundo conjunto: ",x+1); scanf("%i",&v2[x]); u[x+10]=v2[x]; } for(x=0;x<10;x++) { i[x]=0; } for(x=0;x<10;x++) { for(y=10;y<20;y++) { if(u[x]==u[y]) {i[x]=u[x];} else{} } } for(x=0;x<20;x++) { for(y=x+1;y<20;y++) { if(u[x]==u[y]) {u[y]=0;} else{} } printf("\nmostrando a uniao: "); for(x=0;x<20;x++) { if(u[x]!=0) {printf("\nvalor %i",u[x]);} else{} } printf("\n\nresultado da interseção: "); for(x=0;x<10;x++) { if(i[x]!=0) {printf("\nvalor %i",i[x]); } else{} } getchar(); printf("\n\n"); system("pause"); } return (0); } -
C++ Como mexer em uma posição especifica da matriz?
devair1010 respondeu ao tópico de SrJoker em C/C#/C++
@SrJoker você coloca a palavra "CHEIA" na posição escolhida pelo usuário , representando que aquela poltrona não está Livre , #include <iostream> #include <locale.h> #include <string> #include <iomanip> #include <windows.h> #define h GetStdHandle(STD_OUTPUT_HANDLE) using namespace std; void textcolor( int , int ); string mostrar_mapa(string matriz[5][6]); int main() { int antes, antis; CONSOLE_SCREEN_BUFFER_INFO k; if( GetConsoleScreenBufferInfo( h , &k ) ) { antes = ( k.wAttributes & 0xFF) & 0x0F; antis = ((k.wAttributes & 0xFF) >> 4) & 0x0F; } setlocale(LC_ALL, ""); string matriz[5][6]; int l, c, poltrona = 0; for (l = 0; l < 5; l++) { for (c = 0; c < 6; c++) { matriz[l][c] = "LIVRE"; } } do { mostrar_mapa( matriz); cout << "Digite o numero da cadeira na qual voce deseja reservar ou 55 para sair: "; cin >> poltrona; l = (poltrona-1) / 6; c = poltrona - l * 6 - 1; matriz[l][c] = "CHEIA"; }while( poltrona < 31 ); textcolor(antes,antis); cout << "\n\n" << endl; return 0; } string mostrar_mapa(string matriz[5][6]) { int l,c; system("cls || clear"); // Windows e LinuX cout << "== Cadeiras Disponiveis : == \n\n" << endl;; for (l = 0; l < 5; l++) /// 5 fileiras { for (c = 0; c < 6; c++) /// de 6 poltronas { if(matriz[l][c] != "LIVRE")textcolor(15,12); cout << setw(3)<< (l*5)+c+l+1 << " - " << matriz[l][c] << " "; textcolor(7,0); } cout << endl; } cout << "\n\n"; return "a"; } void textcolor( int letras , int fundo ) { SetConsoleTextAttribute(h,letras +(fundo << 4) ); } -
C++ Como mexer em uma posição especifica da matriz?
devair1010 respondeu ao tópico de SrJoker em C/C#/C++
@SrJoker o comando cin>> l ; pega o numero que o usuario digitar , e será as linhas , o cin>>c ; será as colunas , e ai voce colocar "ocupsda" na matriz [l][c]; . -
C++ Pegar o menor e maior elemento em cada linha de uma matriz
devair1010 respondeu ao tópico de anonimocomduvidas em C/C#/C++
@anonimocomduvidas modifica sim , pois está escrito no código para fazer isso mesmo , e se você não quer assim então remova Aquela linha for (i=0; i<n; i++){ for (j=0; j<m; j++){ printf("Digite os valores da matriz linha %d, coluna %d = \n", i, j); scanf("%d", &matriz[i] [j]); /// assim você insere os valores manualmente /// matriz[i][j] = rand()%100+1; /// essa Linha AQui } } -
C++ QuickSort - Ordenação dentro de arquivo
devair1010 respondeu ao tópico de Weverson Meireles em C/C#/C++
@Weverson Meireles creio que possa ser semente de Rand , experimente assim : #include <time.h> int main() { srand(time(NULL)); /// aqui logo no início e só precisa uma vez em todo o código -
C++ Pegar o menor e maior elemento em cada linha de uma matriz
devair1010 respondeu ao tópico de anonimocomduvidas em C/C#/C++
@anonimocomduvidas talvez você não tenha adicionado essa parte do código no lugar certo , desculpe resolver por você , mas apenas para ver os local á inserir essas Linhas : #include <stdio.h> #include <limits.h> #include <stdlib.h> #include <locale.h> #include <time.h> int main() { srand(time(NULL)); setlocale(LC_ALL, "Portuguese"); int matriz[100][100], maior = 0 , menor = INT_MAX; int i, j, n, m; printf("menor = %d\n",menor); /// conferindo o val de menor printf("Digite a quantidade de linhas (máx 100):"); scanf("%d", &n); printf("Digite a quantidade de colunas (máx 100):"); scanf("%d", &m); printf("\n"); for (i=0; i<n; i++){ for (j=0; j<m; j++){ printf("Digite os valores da matriz linha %d, coluna %d = \n", i, j); ///scanf("%d", &matriz[i] [j]); matriz[i][j] = rand()%100+1; } } printf("\n"); printf("Matriz 1: \n"); for (i=0; i<n; i++){ for (j=0; j<m; j++){ printf("%3d ", matriz[i][j]); /// escreve em colunas de tres digitoS } printf("\n"); } for (i=0; i<n; i++) { printf("\n"); maior = 0; /// inicia a variável para novo teste menor = INT_MAX; /// inicia a variável para novo teste for (j=0; j<m; j++) { if(maior < matriz[i][j]) maior = matriz[i][j]; if(menor > matriz[i][j]) menor = matriz[i][j]; } printf("Linha %d O Maior : %d\n", i, maior); printf("Linha %d O Menor : %d\n", i, menor); } return 0; } -
C++ QuickSort - Ordenação dentro de arquivo
devair1010 respondeu ao tópico de Weverson Meireles em C/C#/C++
@Weverson Meireles esse seu código não está criando o arquivo txt , por que você não colocou o tipo do arquivo , ao enviar o nome do arquivo para a função gravar tem três erros , 1 - nome de arquivo não pode ter espaços em branco então precisa substituir por underline, ou outro caractere qualquer , 2 - mas uma variável const não pode ter os dados modificados , só podem ser Lidos , então adicione esses caracteres lidos em outra variável simples e use ela para criar ou abrir o arquivo , 3 - mas ainda falta o tipo de arquivo , então use a função strcat para completar o "nome_do_arquivo.txt" , e essa função gravar ficou assim : int gravar(int vetor[], int n, int c, const char* arquivo) { /// const char ponteiro char aux[200]; /// receber os caracteres do nome arquivo /// grava n elementos do vetor no arquivo, c el. por linha for(i=0; arquivo[i] != 0; i++) /// o nome de arquivo não pode ter espacos em branco { aux[i] = arquivo[i]; /// só pode ler nessa variavel const char arquivo if(arquivo[i] == ' ' ) /// se for espaco { aux[i] = '_'; /// substitui os espacos por UnderLine } } strcat(aux,".txt"); /// adiciona o tipo de arquivo no nome do arquivo .txt printf("\n\nAUX --> %s\n",aux); /// ver se concatenou mesmo FILE* arq = fopen(aux, "a"); /// usa a variaveL auxiliar e tenta abrir o arquivo para gravar a /// partir do finaL dele if(arq == NULL) /// por qq erro arq = fopen(aux,"w"); /// cria reseta e abre o arquivo para gravar nele a partir no iníco dele if( ! arq )return -1; /// por qq outro erro sai do programa e volta para o windows com msg /// de erro valor -1 int col = 0; for ( i = 0; i < n; i += 1) { fprintf(arq, "%6d", vetor[i]); /// escreve em colunas de 6 dígitos no arquivo col +=1; if (col == c) { fprintf(arq, "\n"); col = 0; } } fprintf(arq,"\n"); return 0; } -
@nathaly123 eh como o @Felipecfk disse, para ler a matriz significa que o usuario vai digitar os numeros no teclado , e para isso voce pode usar o comando cin>> matriz[i][j];, e matriz Quadrada eh por Que ela tem a Qtd de linhas igual a qtd de colunas , e a variavel meno precisa ser iniciada com o maior valor possível , que para o tipo int eh #include <limits.h> int meno = INT_MAX;
-
C++ Alguém sabe como fazer esse programa que a questão pede?
devair1010 respondeu ao tópico de Luiggi1010 em C/C#/C++
@Luiggi1010 Olá , você postou no tópico de LinguaGem C++ , um enunciado de um exercício . você pretende fazer esse exercício na linguagem c ou c++ ou outra ? .., ,,, . -
VisualG Condicional múltipla no VisuAlg
devair1010 respondeu ao tópico de LuanaNasc em Programação - iniciantes
@LuanaNasc você pode baixar essa versão nesse link http://visualg3.com.br/baixe-o-visualg-3-0-7/ o que está no topo da página é o 3.0.7 e então role a página para baixo para ver as outras versões. , 3.0.6.5 e outras . . . . ! -
C++ Pegar o menor e maior elemento em cada linha de uma matriz
devair1010 respondeu ao tópico de anonimocomduvidas em C/C#/C++
@anonimocomduvidas para a variáveL menor , inicialize com o maior valor possível como disse o @AdrianoSiqueira e como é um número do tipo int , então use INT_MAX da biblioteca #include <limits.h> #include <limits.h> #include <stdlib.h> #include <time.h> e para preencher a matriz , não precisar ficar perdendo tempo digitando 10.000 números no teclado , você pode usar a função srand(time(NULL)); /// SemenTe pAra Rand de randomicco /// scanf("%d", &matriz[i][j] ); /// tres barras pois no codeblocks a cor fica mais visivel matriz[i][j] = rand()%100+1; /// rand gera o número de zero até o especificad /// e o módulo para extrair apenas um número e dentro do Loop i que faz a comparação de Maior e Menor inicialize essas variáveis , assim for (i=0; i<n; i++) { printf("\n"); maior = 0; /// inicia a variável para novo teste menor = INT_MAX; /// inicia a variável para novo teste for (j=0; j<m; j++) { if(maior < matriz[i][j]) maior = matriz[i][j]; if(menor > matriz[i][j]) menor = matriz[i][j]; } printf("Linha %d O Maior : %d\n", i, maior); printf("Linha %d O Menor : %d\n", i, menor); } mas você postou no tópico de linguaGem C++ e esse seu código é todo da linguagem C mesmo , então você Quer fazer em C ou C++ ? , pois não é a mesma coisa , não , apenas que a linguagem c++ aceita os comandos da linguagem c , mas o c++ é outra coisa .
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais