Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia.
Estou tentando desenvolver uma função que marque um contato como inalterável.
Ex.: Digite seu nome:
Digite seu e-mail:
Digite seu telefone:
Deseja marcar contato como inalterável? (s/n).
Muito obrigado.
Cara eu fiz pra você , deu um trabalhinho , não sei se eu compliquei de mais , irei postar amanha comentado , como ficou o sistema.
Abraço
Segue o codigo.
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
using namespace System;
struct Contact{
char email[100];
char nome[100];
int telefone;
int saida; // condicao para o loop , nao sei se e um alternativa correta....
int alteracao;
}Info;
char y; // selecao
int choice,telefone; // escolha
char email[100]; // novos dados
char nome[100]; // novos dados
int main() {
puts("Digite seu E-Mail:");
scanf("%s",&Info.email);
puts("Digite seu Nome:");
scanf("%s",&Info.nome);
puts("Digite seu Telefone:");
scanf("%i",&Info.telefone);
fflush(stdin);
puts("Deseja marcar algo como inalteravel? (s/n)");
scanf("%s",&y);
y = toupper(y);
do{
if(y =='S'){
puts("Qual Campo deseja marcar como inalteravel?\n 1 - Email \n 2 - Nome \n 3 - Telefone");
scanf("%d",&choice);
if(choice == 1){
Info.alteracao = 0;
puts("Inalterado");
} else if(choice == 2){
Info.alteracao = 2;
puts("Inalterado");
} else if(choice == 3){
Info.alteracao = 3;
puts("Inalterado");
}
puts("Alterar Algum Campo? \n 1 - Email \n 2 - Nome \n 3 - Telefone");
scanf("%d",&choice);
if((choice == 1) && (Info.alteracao == 0)){
puts("Este Campo esta Inalterado.");
} else if ((choice == 2) && (Info.alteracao == 2)){
puts("Este Campo esta Inalterado.");
} else if ((choice == 3) && (Info.alteracao == 3)){
puts("Este Campo esta Inalterado.");
}
printf("Dados Antes da Alteracao : \n %s \n %s \n %d\n",Info.email,Info.nome,Info.telefone);
if((choice == 1) && (Info.alteracao != 0)){
puts("Digite seu E-Mail:");
scanf("%s",&email);
telefone = Info.telefone;
strcpy(nome,Info.nome);
printf("Dados Apos Alteracao : \n %s \n %s \n %d\n",email,nome,telefone);
} else if ((choice == 2) && (Info.alteracao != 2)){
puts("Digite seu Nome:");
scanf("%s",&nome);
telefone = Info.telefone;
strcpy(email,Info.email);
printf("Dados Apos Alteracao : \n %s \n %s \n %d\n",email,nome,telefone);
} else if ((choice == 3) && (Info.alteracao != 3)){
puts("Digite seu Telefone:");
scanf("%d",&telefone);
strcpy(email,Info.email);
strcpy(nome,Info.nome);
printf("Dados Apos Alteracao : \n %s \n %s \n %d\n",email,nome,telefone);
}
Info.saida = 0;
}
if ( y == 'N'){
printf("Dados Antes da Alteração : \n %s \n %s \n %d \n",Info.email,Info.nome,Info.telefone);
Info.saida = 0;
}
}while(Info.saida !=0);
puts("Concluido");
system("pause");
return 0;
}Sugiro que não dê soluções prontas. Agora o usuário vai ter que encontrar outros problemas que não sabe resolver, e que poderia saber caso tivesse sido educado com este.
A condição do loop não precisa ser armazenada dentro da struct, este controle pode ser feito na função main.
Crie um campo booleano dentro da struct.