View Full Version : c++ PROGRAMA BASICO AJUDA PLZ


recordable
14-06-2008, 23:24
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 ?

#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;
}

MPalhas
14-06-2008, 23:32
porque é que a variavel nome está declarada como um parametro do main?

põe assim:


int main() {
char nome[30];

...


e não é printf("s%", nome), mas sim printf("%s", nome).

sir_atmc
14-06-2008, 23:34
Outra coisa, esse código de C++ não tem nada. Isso é C.

recordable
14-06-2008, 23:37
naó é possivel arranjarem-me o codigo desse programa? percisava de isso para hoje mesmo :s

Mr. Brightside
14-06-2008, 23:37
naó é possivel arranjarem-me o codigo desse programa? percisava de isso para hoje mesmo :s

Não. O fórum serve para pedir ajuda, não para pedir que façam o trabalho.

MPalhas
14-06-2008, 23:40
(mais) outra coisa que não reparei a bocado

tens isto:
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);
}

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)

recordable
14-06-2008, 23:44
#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

MPalhas
14-06-2008, 23:52
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

sir_atmc
15-06-2008, 01:27
Aqui está o programa em C++, mais não posso fazer:

#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.

arconada
17-06-2008, 03:14
Habituam-nos mal. depois não sabem fazer as coisas...