TOPIC
PROBLEM 1190 - URI Fórum 1.0
This topic was solved and cannot recieve new replies.
-
Eduardo Miranda Gegitz replied 7 years ago
Boa noite. Meu código tá meio complicado, mas acho que dá pra entender. Alguém pode me dar uma ajuda e dizer o que estou fazendo de errado?
#include<stdio.h> int main(void) { char o; int i,j; double m[12][12], s, med, cont=0; scanf("%c",&o); for(i=0;i<12;i++) { for(j=0;j<12;j++) { scanf("%lf",&m[i][j]); } } if(o=='S') { for(i=1;i<11;i++) { if(i<5) { for(j=(12-i);j<12;j++) { s+=m[i][j]; } } else { for(j=(i+1);j<12;j++) { s+=m[i][j]; } } } printf("%.1lf\n",s); } else { for(i=1;i<11;i++) { if(i<5) { for(j=(12-i);j<12;j++) { s+=m[i][j]; cont++; } } else { for(j=(i+1);j<12;j++) { s+=m[i][j]; cont++; } } } med=(s/cont); printf("%.1lf\n",med); } return 0; }
-
Gustavo Marini replied 4 years ago
MODThe input values are floating point. You just need to change:
int m[12][12];
by
double m[12][12];
-
md forhad hossain replied 4 years ago
What's wrong with this code??!! why it is giving error??!!
using namespace std;
include<bits/stdc++.h>int main(){ //uri 1190
int m[12][12]; char ch; scanf("%c",&ch); for(int i=0;i<12;i++){ for(int j=0;j<12;j++){ cin >> m[i][j]; } } int i,j; i = 1; float sum =0; float cnt = 0; for(j=11;j>=7;j--){ for(i=11-(j-1) ;i<=j-1;i++){ sum+=m[i][j]; cnt++;
// cout << "i: " << i << " j: " << j << endl; } // i++; } if(ch == 'S'){ cout <<fixed << setprecision(1) <<sum << endl; } else { cout <<fixed << setprecision(1) << sum/cnt << endl; } // cout << "cnt: " << cnt << endl;
return 0;
}
-
Matheus dos Santos Pereira replied 4 years ago
Alguém pode me ajudar ??
#include <iostream> #include <string.h> using namespace std; int main() { /** * Escreva a sua solução aqui * Code your solution here * Escriba su solución aquí */ int M[12][12]; char a; int soma = 0; scanf("%c",&a); int d=5,e=6,f=0; int i,j; for(i = 0; i<12; i++){ for(j = 0; j<12; j++){ scanf("%d",&M[i][j]); if((d<=i<=e) && (j==f) && (i>=7)){ soma = soma + M[i][j]; } } if(i>=7){ f++; d--; e++; } } int retorno = (strcmp(a,"S")); if( retorno == 0){ printf("%d",soma); }else{ printf("%.1f",soma/30.0); } return 0; }
Estou tendo erro de compilação
-
Gerson Groth replied 6 years ago
O teu for dentro do while vai sempre até i ser menor que COLUNA. Muda para até i ser menor que (COLUNA - limite2) que passa ;)
for (i=limite2;i<(COLUNA - limite2);i++){
-
Francielle Marques replied 6 years ago
Qual é o erro? Obrigada, desde já.
Dúvida respondida. Código removido
-
[UEFS] Marcelo Bião replied 7 years ago
Tente inicializar a variavel "s" com 0 para quando vc a incrementa-la o lixo de memória não altere o resultado. no local do if "if(i<5)". essa ferificação deveria ser feita para i<=5. Tente mudar isso pra ver se o código passa.
-
Gerson Groth replied 7 years ago
Exato. São 144 valores de entrada. O que vc tem que calcular é somente a área informada em verde.
-
Patrick Junior De Bastiani replied 7 years ago
Então a entrada vai completar todas as posições da matriz, não somente a parte verde.
-
Gerson Groth replied 7 years ago
Você tem que ler os valores da matriz (12 linhas e 12 colunas). Portanto, vão existir valores na parte correspondente à área verde da matriz. Ai é só calcular a Soma ou Média, dependendo do caractere que for lido na primeira linha, correspondente aquela área verde.
-
Patrick Junior De Bastiani replied 7 years ago
Tenho que considerar que a parte da matriz já esta completada? Ou seja, só pego a parte verde e faço as operações, tendo ou não valores nas posições?