c++ PROGRAMA BASICO AJUDA PLZ

O Programa aceita um nome e uma idade. Caso o nome seja o teu
primeiro nome então mostra-o o mesmo número de vezes que a idade​
introduzida, caso contrário apenas o mostra uma vez na vertical.


O QUE FALTA NESTE CODIGO sff tame a dar erro mal introduzo a primeira variavel ?

Código:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <string.h>
 
main(char nome[30])
{
printf("Digite um nome: ");
gets(nome);
 
int x,i;
x=0;
printf("Introduza a sua idade: %d\n",x);
if (nome=="paulo")
{
for (i=1; i <= x; i++)
{
printf("s%",nome);
}
}
else
printf("s%",nome);
return 0;
}
 
Última edição pelo moderador:
porque é que a variavel nome está declarada como um parametro do main?

põe assim:

Código:
int main() {
   char nome[30];

   ...


e não é printf("s%", nome), mas sim printf("%s", nome).
 
Última edição:
(mais) outra coisa que não reparei a bocado

tens isto:
Código:
[FONT=Arial][COLOR=White]int x,i;
x=0;
printf("Introduza a sua idade: %d\n",x);
if (nome=="paulo")
{
for (i=1; i <= x; i++)
{
printf("s%",nome);
}[/COLOR][/FONT]

Isso no primeiro printf vai escrever simplesmente:
"Introduza a sua idade: 0"

o printf não serve para ler variaveis, apenas para as escrever. o que tu deves querer é isto
printf("Introduza a sua idade: ");
scanf("%d", &x);


por último, se bem me lembro também não podes comparar strings fazendo if (nome=="paulo")

o correcto é:
if (strcmp(nome, "paulo")==0)

 
Código:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <string.h>
 
int main()
{
char nome[30];
 
printf("Digite um nome: ");
gets(nome);
 
int x,i;
x=0;
printf("Introduza a sua idade: ");
scanf("%d", &x);
 
if (strcmp(nome, "paulo")==0)
{
for (i=1; i <= x; i++)
{
printf("%s", nome);
}
}
else
printf("%s", nome);
return 0;
}


já esta a funcionar uma beka melhor,obrigado mas agora kando nao introduzo o meu nome nao me faz nada falta o else funcionar ou assim
 
Última edição:
claro que não faz nada. ou melhor faz mas tu não vez

pede-te o nome e tu não escreves nada
depois quando é para o escrever, vai escrever tal e qual como leu, ou seja NADA
 
Aqui está o programa em C++, mais não posso fazer:

Código:
#include <iostream>
#include <string>

using namespace std;

int main() //função main retorna um valor do tipo int (não fizeste isso no teu programa)
{
    //declaração de variaveis
    string nome;
    int idade = 0;

    cout << "Escreva um nome: "; //pede o nome
    cin >> nome; //getline(cin, nome) //lê o nome para a variavel

    cout << endl << "Escreva a idade: "; //pede a idade e lê para a variavel
    cin >> idade;
    cout << endl;
 
    if (nome == "paulo") //se o nome for igual a "paulo"
    {
        for (int i = 0; i < idade; i++)
            cout << nome << endl; //imprime no ecra
    }

    else
    {
        for (string::size_type i = 0; i < nome.size(); i++)
            cout << nome[i] << endl; //imprime cada letra do nome em cada linha. Não esquecer que podemos aceder aos elementos de uma string através de indices
    }

    return 0; //a função retorna um int, neste caso retornamos zero
}
Deve estar a funcionar, mas não testei porque estou num sitio onde não tenho forma de o testar.
 
Última edição:
Back
Topo