Jump to content
  • 0
marcos_paulo0o

Correção do código em C++

Question

Eae Galera!

 

Estou com um problema em um trabalho da faculdade, e gostaria que vcs me dessem uma ajudinha.

O trabalho é o seguinte: Desenvolvar um programa em c que consiga registrar , alterar, excluir,  e consultar os dados, mas depois de ter feito o código, eu não consigo encontrar o erro que o compilador estar acusando.

Eu sou novo na linguagem c e peço que se possível me falem qual é esse erro para que eu possa consertar.

Agradeço desde já!

 

PROGRAMA:

 

#include <stdio.h>
#include <stdlib.h>

struct cliente
{
    char nome[30];
    int cod;
    char ender[30];
    int quant;
    float valor;
};

 void incluir()
{
    cliente incluir[1];
    
    for (int i = 0 ; i < 2 ; i++)
    {
        printf("NOME: \n");
        fflush(stdin);
        scanf("%s", &cliente.nome);
        
        printf("CODIGO: \n");
        fflush(stdin);
        scanf("%i", &cliente.cod);
        
        printf("ENDERECO: \n");
        fflush(stdin);
        scanf("%s", &cliente.ender);
        
        printf("QUANTIDADE: \n");
        fflush(stdin);
        scanf("%i", &cliente.quant);
        
        printf("VALOR: \n");
        scanf("%f", &cliente.valor);
    }
}

void listar()
{
    int i, aux;
     
     for(i = 0;i < aux; i++)
     {
           printf(" ARQUIVO %d\n",(i+1));
           printf(" CODIGO: %i",cliente.cod);
           printf(" NOME: %s",cliente.nome);
           printf(" ENDERECO: %s",cliente.ender);           
           printf(" QUANTIDADE: %i",cliente.quant);
           printf(" VALOR: %f",cliente.valor);
           printf("\n\n");
     }
       }

void editar()
{
    int cod, i;

   printf("\n CODIGO: ");
   scanf("%i", &cod);

   printf("\n INFORME OS NOVOS DADOS:\n\n ");

   printf("\n NOME: ");
   scanf("%s", &cliente.nome);

   printf("\n CODIGO: ");
   scanf("%i", &cliente.cod);
   
   printf("\n ENDERECO: ");
   scanf("%s", &cliente.ender);

   printf("\n QUANTIDADE: ");
   scanf("%i", &cliente.quant);

   printf("\n VALOR: ");
   scanf("%f", &cliente.valor);
   
   printf("DADOS ALTERADOS COM SUCESSO!");
}

void excluir()
{
int cod;

   printf("\n CODIGO: ");
   scanf("%i", cod);

   cliente.cod = "";
   cliente.nome = "";
   cliente.ender = "";
   cliente.quant = "";
   cliente.valor = "";

   printf("DADOS APAGADOS COM SUCESSO!");

}       
       
main()
{
void incluir();
void listar();
void editar();
int op = 0, aux = 0;

do
{
op = menu();

switch(op)
{
case 1: incluir();
break;

case 2: listar();
break;

case 3: editar();
break;

case 4: excluir();
break;
}
}

while(op != 0);
system("pause");    
}

 

Share this post


Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By christin cley
      Construir um algoritmo em C++ que preencha um matriz quadrada de tamanho 4 pelo usuário. Após o preenchimento pelo usuário, verifique na diagonal principal qual foi o maior valor digitado e exiba na tela o valor. Por fim,  exiba na tela toda matriz em forma de matriz na tela.
    • By vinicius.benedito98
      Faça um Programa em Linguagem C que receba o nome e a nota de 180 alunos de uma sala e armazene em vetor. Calcule e mostre: 
      - A média da sala; 
      - O nome do aluno com a maior nota; 
      - O nome do aluno com a menor nota; 
      - Os nomes dos alunos aprovados;

      O meu código é esse :

      #define N 180 
      int main() { 
      int i, ind_maior, ind_menor; 
      float nota[N], soma=0, media, min_aprov=7; 
      char nome[N][50]; 
      for (i=0; i printf("Informe o nome do %dº aluno: ", i+1); 
      gets(nome); 
      printf("Informe a nota do %dº aluno: ", i+1); 
      scanf(" %d ", &nota); 
      soma += nota; 

      media = soma / N; 
      printf("\nMédia da sal: %.2f\n", media); 
      ind_menor = ind_maior = 0; 
      for (i=1; i if (nota < nota[ind_menor]) 
      ind_menor = i; 
      if (nota > nota[ind_maior]) 
      ind_maior = i; 

      printf("Menor nota: %s com %.2f\n", nome[ind_menor], nota[ind_menor]); 
      printf("Maior nota: %s com %.2f\n", nome[ind_maior], nota[ind_maior]); 
      printf("Aprovados:"); 
      for (i=0; i if (nota >= min_aprov) 
      printf("\t%s com: %.2f\n", nome, nota); 

      return 0; 
      }


      Porém quando vou executa-lo, o programa pede para inserir o nome e nota do aluno apenas uma vez, e fica por isso, ele não exibe os resultados, alguém pode me ajudar ?
    • By Vitor Dória
      Pessoal,estou fazendo uma serie de exercícios em c++ e to me batendo muito em um exercício aqui,poderiam me ajudar?
       
       
      Construir um algoritmo em C++ que preencha um matriz quadrada de tamanho 4 pelo usuário. Após o preenchimento pelo usuário, verifique na diagonal principal qual foi o maior valor digitado e exiba na tela o valor. Por fim,  exiba na tela toda matriz em forma de matriz na tela.
    • By matheusxds12
      Gostaria de saber qual o problema com o meu código pois ao compilar e executar ele simplesmente abre o DOS e fecha sem realizar nenhuma tarefa 
      #include <stdlib.h> #include <stdio.h> #include <locale.h> // aux1 = contador de coluna e aux2 = contador de linha int main () { setlocale(LC_ALL, "portuguese"); int m1, n1, m2, n2, matriz1[m1][n1], matriz2[m2][n2],matrizsoma[m1][n1],aux1,aux2,elemento,contadorlinha=0; printf("Entre com o número de linhas da 1ª matriz : "); scanf("%i",&m1); printf("Entre com o número de colunas da 1ª matriz : "); scanf("%i",&n1); printf("Entre com o número de linhas da 2ª matriz : "); scanf("%i",&m2); printf("Entre com o número de colunas da 2ª matriz : "); scanf("%i",&n2); if ((m1==m2) && (n1==n2)){ for (aux2 = 0;aux2<m1;aux2++){ for (aux1=0;aux1<n1;aux1++){ contadorlinha=aux1+1; printf("Matriz A:"); printf("Entre com os elementos um a um, separados por espaço da %iª linha: ",contadorlinha); scanf("%i",&elemento); matriz1[aux2][aux1]=elemento; } } for (aux2 = 0;aux2<m2;aux2++){ for (aux1=0;aux1<n2;aux1++){ contadorlinha=aux1+1; printf("Matriz B:"); printf("Entre com os elementos um a um, separados por espaço, da %iª linha: ",contadorlinha); scanf("%i",&elemento); matriz2[aux2][aux1]=elemento; } } for (aux2=0;aux2<m1;aux2++){ for(aux1=0;aux1<n1;aux1++){ matrizsoma[aux2][aux1]=matriz1[aux2][aux1]+matriz2[aux2][aux1]; } } printf("Matriz C = A + B:\n"); for (aux2=0;aux2<m1;aux2++){ for(aux1=0;aux1<n1;aux1++){ printf("%i",matrizsoma[aux2][aux1]); } printf("\n"); } } else{ printf("\nParâmetros das matrizes inválidos para a soma!\n"); printf("Ambas devem ter o mesmo número de linhas e colunas\n"); } system("pause"); return 0; }  
    • By ross
      Olá, estou tentando fazer um programa para o problema do caixeiro comprador exato (TPP ou PCCo) e, depois de fazer algumas pesquisas, eu encontrei o código a baixo e gostaria conseguir compilar e executar para comparar com a minha implementação. O problema é que não consigo compilar o código. Fica dando, esses erros(Também segue na foto):
      "
      /tmp/ccvk9cDb.o: Na função "work()":
      main.cpp:(.text+0x104e): relocação truncada para caber: R_X86_64_PC32 contra símbolo não definido "pop" na seção .bss em /tmp/ccvk9cDb.o
      main.cpp:(.text+0x106e): relocação truncada para caber: R_X86_64_PC32 contra símbolo não definido "pop" na seção .bss em /tmp/ccvk9cDb.o
      main.cpp:(.text+0x1152): relocação truncada para caber: R_X86_64_PC32 contra símbolo não definido "pop" na seção .bss em /tmp/ccvk9cDb.o
      main.cpp:(.text+0x12b4): relocação truncada para caber: R_X86_64_PC32 contra símbolo não definido "pop" na seção .bss em /tmp/ccvk9cDb.o
      /tmp/ccvk9cDb.o: Na função "__static_initialization_and_destruction_0(int, int)":
      main.cpp:(.text+0x1526): relocação truncada para caber: R_X86_64_PC32 contra ".bss"
      main.cpp:(.text+0x1539): relocação truncada para caber: R_X86_64_PC32 contra ".bss"
      collect2: error: ld returned 1 exit status
       
      "
       
       
      Esse é o código:
      //////////////////////////////////////////////////////////////////////////////////////////////
      #include <iostream>
      #include <cstdio>
      #include <cstring>
      #include <cstdlib>
      #include <cmath>
      #include <algorithm>
      #include <queue>
      #include <map>
      #include <set>
      #include <vector>
      #include <string>
      #include <stack>
      #include <bitset>
      #include"instance_access.h"
      #define INF 0x3f3f3f3f
      #define eps 1e-8
      #define FI first
      #define SE second
      using namespace std;
      typedef long long ll;
      const int MaxM = 25, MaxK = 700;
      int M, K, Q;
      int G[MaxM + 5][MaxM + 5];
      int P[MaxM + 5][MaxK + 5];
      int C[MaxM + 5];

      void read(char *p,int m,int k,int d,int h)
      {
          //scanf("%d%d", &M, &K);
         int* _graph;
          int* _price;
          //_graph->printMatrix();
          //cout<<endl;
          //_price->printMatrix();
          //cout<<endl;
          get_instance_largek(_graph,_price,m,k,p);
          //cout<<endl;
          for(int i=0;i<m;++i)
          {
              for(int j=0;j<m;++j)
              {
                  int temp=_graph[i*m+j];
                  //cout<<temp<<" ";
                  *(G + j)=temp;
              }
              //cout<<endl;
          }
          //cout<<endl;
          for(int i=0;i<m;++i)
          {
              for(int j=0;j<k;++j)
              {
                  int temp=_price[i*k+j];
      //            cout<<temp<<" ";
                  *(P + j)=temp;
              }
      //        cout<<endl;
          }
          M=m;
          K=k;
          Q=h;
          for(int i=1;i<m;++i)
          {
              C=d;
          }
      }
      inline void ck(int &x, int v) {
          if(x > v) x = v;
      }
      int head[MaxM + MaxK + 10];
      struct Edge {
          int nxt, to, cow, cost;
          Edge() {}
          Edge(int nxt, int to, int cow, int cost) : nxt(nxt), to(to), cow(cow), cost(cost) {}
      } ed[100000];
      int ecnt, mx_flow, mi_cost;
      void init() {
          mx_flow = mi_cost = ecnt = 0;
          memset(head, -1, sizeof(head));
      }
      void addedge(int u, int v, int cow, int cost) {
          ed[ecnt] = Edge(head, v, cow, cost);
          head = ecnt ++;
          ed[ecnt] = Edge(head[v], u, 0, -cost);
          head[v] = ecnt ++;
      }
      queue <int> q;
      int dis[MaxK + MaxM + 10], pre[MaxK + MaxM + 10], inq[MaxK + MaxM + 10];
      bool Spfa(int S, int T) {
          memset(dis, 0x3f, sizeof(dis));
          dis = 0;
          q.push(S);
          while(!q.empty()) {
              int u = q.front(); q.pop();
              inq = 0;
              for(int e = head; ~e; e = ed[e].nxt) {
                  if(!ed[e].cow) continue;
                  int v = ed[e].to;
                  if(dis[v] > dis + ed[e].cost) {
                      dis[v] = dis + ed[e].cost;
                      pre[v] = e;
                      if(!inq[v]) {
                          inq[v] = 1;
                          q.push(v);
                      }
                  }
              }
          }
          return dis[T] != INF;
      }
      void End(int S, int T) {
          int flow = INF;
          for(int u = T; u != S; u = ed[pre ^ 1].to) {
              flow = min(flow, ed[pre].cow);
          }
          for(int u = T; u != S; u = ed[pre ^ 1].to) {
              ed[pre].cow -= flow;
              ed[pre ^ 1].cow += flow;
              mi_cost += flow * ed[pre].cost;
          }
          mx_flow += flow;
      }
      int minPrice(int s) {
          init();
          int src = 0, dec = M + K+1;
          for(int i = 1; i < M; ++ i) {
              if(~s >> i & 1) continue;
              addedge(src, i, C, 0);
              for(int k = 0; k < K; ++ k) {
                  if(P[k] == 0) continue;
                  addedge(i, M + k+1, 1, P[k]);
              }
          }
          for(int i = 1; i <= K; ++ i) {
              addedge(M + i, dec, 1, 0);
          }
          while(Spfa(src, dec)) End(src, dec);
          if(mx_flow != K) return -1;
          return mi_cost;
      }
      int dp[MaxM + 1][1 << MaxM];
      int pop[1 << MaxM];
      void work() {
          int U = 1 << M;
          for(int i = 1; i < U; ++ i) {
              pop = pop[i >> 1] + (i & 1);
          }
          for(int i = 1; i < M; ++ i) {
              for(int j = 0; j < U; ++ j) {
                  dp[j] = INF;
              }
          }
          for(int i = 1; i < M; ++ i) {
              dp[1 << i] = G[0];
          }
          for(int s = 1; s < U; ++ s) {
              if(pop >= Q) continue;
              for(int i = 1; i < M; ++ i) {
                  if(dp == INF) continue;
                  for(int j = 1; j < M; ++ j) {
                      if(s >> j & 1) continue;
                      ck(dp[j][s | (1 << j)], dp + G[j]);
                  }
              }
          }
          int ans = INF;
          for(int i = 0; i < U; ++ i) {
              if(pop > Q) continue;
              int f = minPrice(i);
              if(f == -1) continue;
              for(int j = 1; j < M; ++ j) {
                  if(dp[j] == INF) continue;
                  ck(ans, f + dp[j] + G[j][0]);
              }
          }
          printf("%d", ans);
      }
      int main(int argc,char *argv[]) {
          //arguments order: filename m k u q
          if(argc !=6)
          {
              cout<<"wrong number of arguments";
              return 1;
          }
          int m,k,u,q;
          m=atoi(argv[2]);
          k=atoi(argv[3]);
          u=atoi(argv[4]);
          q=atoi(argv[5]);
          read(argv[1],m,k,u,q);
          time_t begin,end;
          cout<<"optimal object value: ";
          begin=clock();
          work();
          end=clock();
          cout<<endl;
          cout<<"time: ";
          cout<<double(end-begin)/CLOCKS_PER_SEC<<endl;
          return 0;
      }
      //////////////////////////////////////////////////////////////////////////////////////////////
      ////////////////////////////////////"instance_acess.h"//////////////////////////////////////////////////////////
      #ifndef INSTANCE_ACCESS_H_INCLUDED
      #define INSTANCE_ACCESS_H_INCLUDED
      #include <string>
      #include <strstream>
      #include<iostream>
      #include<fstream>
      #include<string.h>
      using namespace std;
      int get_instance_largek(int *&graph, int *&product_distribution, int m,int k,char *p)
      {
          graph=new int[m*m];
          product_distribution=new int[m*k];
          for(int i=0;i<m;++i)
          {
              for(int j=0;j<m;++j)
              {
                  graph[i*m+j]=0;
              }
          }
          for(int i=0;i<m;++i)
          {
              for(int j=0;j<k;++j)
              {
                  product_distribution[i*k+j]=0;
              }
          }
          ifstream fin;
          fin.open(p);
          if(fin.is_open())
          {
              string s;
              while(fin>>s)
              {
                  if(s=="NODE_COORD_SECTION")
                  {
                      fin>>s;
                      int num;
                      double x[m];
                      double y[m];
                      for(int i=0;i<m;++i)
                      {
                          fin>>num;
                          fin>>x;
                          fin>>y;
                      }
                      for(int i=0;i<m;i++)
                      {
                          for(int j=0;j<m;j++)
                          {
                              double xd=x-x[j];
                              double yd=y-y[j];
                              int d=(int)(sqrt(xd*xd+yd*yd)+0.5);
                              graph[i*m+j]=d;
                          }
                      }
                  }
                  if(s=="OFFER_SECTION")
                  {
                      fin>>s;
                      int id;
                      int num=0;
                      for(int i=0;i<m;++i)
                      {
                          fin>>id;
                          fin>>num;
                          int product_id;
                          int cost;
                          int dem;
                          for(int j=0;j<num;++j)
                          {
                              fin>>product_id;
                              fin>>cost;
                              product_distribution[i*k+product_id-1]=cost;
                              fin>>dem;
                          }
                      }
                  }
              }
              return 1;
          }else{
           return 0;
          }
      }
      #endif // INSTANCE_ACCESS_H_INCLUDED
      //////////////////////////////////////////////////////////////////////////////////////////////
       

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.