Jump to content
  • ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • 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
      //////////////////////////////////////////////////////////////////////////////////////////////
       

    • By C.SALLES
      Faça um programa leia dois números inteiros e utilize uma função SOMAR que receba esses dois números por parâmetro e retorne a soma dos números inteiros existentes entre eles.
      Sou iniciante em programação e tentei fazer o programa da tal forma:
       
      #include<stdlib.h>
      #include<math.h>
      #include<stdio.h>
      int SOMAR((((int soma;i;n1;n2))))
      {
          return; 
           for (i=n1+1; i<n2; i++) {  
          soma += i; 
          } 
      }
      int main() { 
      int n1, n2; 
      printf("Informe os números: "); 
      scanf("%d %d", &n1, &n2);  
      printf("\nSoma: %d\n", SOMAR(soma)); 
      return 0; 
      system ("pause");
      }
       
      Não roda por vários motivos e sinceramente sei nem como resolver
×

Important Information

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