#include <stdio.h>
void loop(int n, int *nando, int *dunga)
{
if(n == 0)
return;
int unity = n % 10;
if(unity % 2 ==0)
{
*dunga += unity;
}
else
{
*nando += unity;
}
return loop(n/10, nando, dunga);
}
int main ()
{
int n, nando = 0, dunga = 0;
scanf("%d", &n);
loop(n, &nando, &dunga);
if(dunga > nando)
{
printf("Vencedor: Dunga\n");
printf("%d Pontos de Vantagem\n", dunga - nando);
}
else if(nando > dunga)
{
printf("Vencedor: Nando\n");
printf("%d Pontos de Vantagem\n", nando - dunga);
}
else
{
printf("Empate\n");
}
return 0;
}
Normal ué, a única diferença é que o scanf , você deve usar o Scanner.
Não mesmo, há uma grande diferença no código dele para um código Java:
Ele passa ponteiros de int
para a função loop
e altera eles dentro da função.
Isso não é possível no Java, pois Java não passa parâmetros por referência e sim por cópia da referência.
Então ele tem que modificar a implementação utilizando um objeto como parâmetro ou modificar o retorno do loop
para retornar as alterações.
Exemplo:
import java.io.PrintStream;
import java.util.Scanner;
public class Programa {
public static void main(String[] args) {
try {
Programa programa = new Programa();
programa.executar();
} catch (Throwable t) {
t.printStackTrace();
}
}
private final Scanner entrada = new Scanner(System.in);
private final PrintStream saida = System.out;
class Jogadores {
public int nando;
public int dunga;
}
private void executar() {
int n = Integer.parseInt(entrada.nextLine());
Jogadores jogadores = new Jogadores();
loop(n, jogadores);
if (jogadores.dunga > jogadores.nando) {
saida.printf("Vencedor: Dunga\n");
saida.printf("%d Pontos de Vantagem\n", jogadores.dunga - jogadores.nando);
} else if (jogadores.nando > jogadores.dunga) {
saida.printf("Vencedor: Nando\n");
saida.printf("%d Pontos de Vantagem\n", jogadores.nando - jogadores.dunga);
} else {
saida.printf("Empate\n");
}
}
void loop(int n, Jogadores jogadores) {
if (n == 0) {
return;
}
int unity = n % 10;
if (unity % 2 == 0) {
jogadores.dunga += unity;
} else {
jogadores.nando += unity;
}
loop(n / 10, jogadores);
}
}
2 curtidas