segunda-feira, 26 de agosto de 2013

Exercício com cin e cout em C



Altere o programa feito para dizer se um número é primo, de maneira que ele utilize apenas os comandos cin e cout para entrada e saída de dados.

#include <iostream.h>
int primo(int numero);
void main(){
    int entrada;
    //printf("Digite um numero: ");
    cout << "Digite um numero ";
    //scanf("%d",&entrada);
    cin >> entrada;
    if(primo(entrada))
        //printf("\nNumero Primo");
        cout << "\nNumero Primo";
    else //printf("\nNumero nao Primo");
        cout << "\nNumero nao Primo";
    getch();
}
int primo(int numero){
    int i;
    for(i=2;i<numero;i++)
    {
        if ((numero % i) == 0)
            return 0;
    }
    return 1;
}

Criar cout em C



O objeto cout está associado à saída de vídeo. É um dispositivo de saída que distingue o tipo de dado. Portanto não é necessário declarar o tipo a ser enviado a saída, como necessariamente o é, quando trabalhamos com o C.

Sintaxe:

cout << Valor de Saída

Exemplo

#include <stdio.h>
#include <conio.h>
#include <iostream.h>

void main()
{
    cout << "Testando Saida com COUT";
    getch();
}

Criar cin em C



Criar cin em C

O objeto de dados cin é um dispositivo que envia o valor recebido para uma variável. O objeto cin está associado ao teclado. É um dispositivo de entrada de dados que distingue o tipo de dado.

Sintaxe:

cin >> Variável

Exemplo

#include <stdio.h>
#include <conio.h>
#include <iostream.h>

void main()
{
    int numero;
    cout << "Entre com um numero: ";
    cin >> numero;
    cout << numero;
    getch();
}

Entrada e Saída com cin e cout em C



Entrada e Saída com cin e cout em C

Introdução

Os objetos cin e cout são usados somente em compiladores orientados a objetos. Esses objetos não funcionam quando o compilador não suporta orientação a objetos. Se o compilador suporta orientação a objetos é necessário incluir a biblioteca <iostream.h>.

Criar cout em C

O objeto cout está associado à saída de vídeo. É um dispositivo de saída que distingue o tipo de dado. Portanto não é necessário declarar o tipo a ser enviado a saída, como necessariamente o é, quando trabalhamos com o C.

Sintaxe:

cout << Valor de Saída

Exemplo

#include <stdio.h>
#include <conio.h>
#include <iostream.h>

void main()
{
    cout << "Testando Saida com COUT";
    getch();
}



Criar cin em C

O objeto de dados cin é um dispositivo que envia o valor recebido para uma variável. O objeto cin está associado ao teclado. É um dispositivo de entrada de dados que distingue o tipo de dado.

Sintaxe:

cin >> Variável

Exemplo

#include <stdio.h>
#include <conio.h>
#include <iostream.h>

void main()
{
    int numero;
    cout << "Entre com um numero: ";
    cin >> numero;
    cout << numero;
    getch();
}

Classes de Armazenamento em C



Classes de Armazenamento

Introdução


Todas as variáveis em C têm dois atributos: um tipo e uma classe de armazenamento. Os tipos nós já conhecemos, e as classe de armazenamento que veremos serão as seguintes:
auto
extern
static
register

Classe auto

A maioria das variáveis que declaramos até agora estão confinadas nas funções que as usam. Isto é, são “visíveis” somente às funções onde estão declaradas. Tais variáveis são chamadas “locais” ou “automáticas”, são criadas quando a função é chamada e destruídas quando a função termina a sua execução. As variáveis declaradas dentro de uma função são automáticas por “default”. Variáveis automáticas são as mais comuns dentre as quatro classes. A classe de variáveis automáticas pode ser explicitada usando-se a palavra auto.

void main()
{
    auto int n;
}

É EQUIVALENTE A

void main()
{
    int n;
}


Classe extern
 
Todas as variáveis declaradas fora de qualquer função têm a classe de armazenamento extern. Variáveis com este tipo de atributo serão conhecidas por todas as funções declaradas depois dela. A declaração de variáveis externas é feita da mesma maneira como declaramos variáveis dentro do bloco de uma função.

#include <stdio.h>
#include <conio.h>

int n=10;

void main()
{
    extern n;
    printf("%d",n);
    getch();
}


Classe extern
 
A palavra extern indica que a função usará uma variável externa. Este tipo de declaração, entretanto, não é obrigatória se a definição original ocorre no mesmo arquivo fonte. Lembre-se que variáveis externas retém seus valores durante toda a execução do programa.

Classe static

Variáveis static de um lado se assemelham às automáticas, pois são conhecidas somente as funções que as declaram e de outro lado se assemelham às externas pois mantém seus valores mesmo quando a função termina. Usa-se variáveis declaradas como static normalmente para permitir que variáveis locais guardem seus valores mesmo após o término da execução do bloco onde são declaradas.

void soma();

void main()
{
    soma();
    soma();
    soma();
    getch();
}

void soma()
{
    static int i=0;
    i++;
    printf("i = %d \n",i);
}


Classe register

A classe de armazenamento register indica que a variável associada deve ser guardada fisicamente numa memória de acesso chamada registrador. Um registrador da máquina é um espaço onde podemos armazenar um int ou um char. Cada máquina oferece um certo número de registradores que podem ser manuseados pelos usuários. Basicamente variáveis register são usadas para aumentar a velocidade de processamento. Fortes candidatas a este tratamento são as variáveis de laços.
Segue a seguir um exemplo:

#include <time.h>

void main()
{
    int i, j;
    register int m,n;
    long t;

    t = time(0);
    for(j=0;j<=10000;j++)
        for(i=0;i<=10000;i++)
            ;
    printf("Tempo = %ld\n",time(0)-t);

    t = time(0);
    for(m=0;m<=10000;m++)
        for(n=0;n<=10000;n++)
            ;
    printf("Tempo = %ld\n",time(0)-t);
    getch();
}



O Pré-Processador em C



Introdução

O pré-processador C é um programa que examina o programa fonte em C e executa certas modificações nele, baseado em instruções chamadas diretivas.
O pré-processador faz parte do compilador e pode ser considerado uma linguagem dentro da linguagem.
Ele atua antes da compilação de um programa, fazendo pesquisa e substituição no código fonte antes de iniciar a compilação.
Como já dito, a substituição basea-se em diretivas definidas no corpo do código fonte.
As diretivas em sempre iniciam com o caracter #.

Algumas das principais diretivas da linguagem C são as seguintes:
#include
#define
#error
#ifdef
#undef
entre outras

A diretiva #define

Com a diretiva #define definimos um identificador (escrito em maiúsculo) que deverá ser localizado.
Em seguida, após pelo menos um espaço em branco, definimos o texto resultante que substituirá o identificador localizado.
A operação toda (definição mais pesquisa e substituição) é denominada de macro.

Exemplo 1

#include <stdio.h>
#include <conio.h>

#define PI 3.14159

float area(float r);

void main()
{
    float raio;
    printf("Digite o raio da esfera: ");
    scanf("%f",&raio);
    printf("A area da esfera eh %f",area(raio));
    getch();
}

float area(float r)
{
    return(4 * PI * r * r);
}



Por Que Usar #define ?

Talvez você se pergunte o que ganhamos substituindo, no programa anterior, PI por 3.14159.
Suponhamos que você tenha um programa em que a constante 3.14159 apareça muitas vezes.
Suponha, ainda, que agora você queira uma precisão maior e queira trocar 3.14159 por 3.141592.

Você deverá ir passo a passo através do programa e trocar cada ocorrência que encontrar da constante.
Entretanto, se você tiver definido 3.14159 como sendo PI na diretiva #define, você deverá somente fazer uma troca.

Exemplo 2

#include <stdio.h>
#include <conio.h>

#define SOMA(x,y) (x+y)

void main()
{
    printf("Resultado: %d",SOMA(3,5));
    getch();
}



Exemplo 3

#include <stdio.h>
#include <conio.h>

#define ERRO printf("\nERRO: NUMERO INVALIDO")

void main()
{
    int i;
    printf("Digite um numero de 0 a 100: ");
    scanf("%d",&i);
    if( (i<0) || (i>100))
        ERRO;
    getch();
}



Exercícios

Torne o código abaixo interpretável pelo compilador C.

algoritmo
inicio
    escreva("teste");
    espere;
fim


Solução

#include <stdio.h>
#include <conio.h>

#define algoritmo void main()
#define inicio {
#define fim }
#define escreva(x) printf(x)
#define espere getch()

algoritmo
inicio
    escreva("teste");
    espere;
fim

sábado, 24 de agosto de 2013

Variáveis Locais e Globais em C



Locais:

Variáveis que são declaradas dentro de funções.
Seu escopo de visibilidade é somente para a função a qual ela pertence.

Globais:

Variáveis declaradas fora de qualquer função.
Este tipo de variável pode ser acessada por todas as funções que fazem parte do código fonte.



Exemplo:

float valor_dolar, real;  // variáveis globais
void converte(float qtd_dolar);
void main()
{
    float montante;
    printf("Digite o valor do Dolar em Reais: ");
    scanf("%f",&valor_dolar);
    printf("Digite um montante em Dolar: ");
    scanf("%f",&montante);
    converte(montante);
    printf("\nMontante em Reais = %f",real);
    getch();
}
void converte(float qtd_dolar)
{
    real = qtd_dolar * valor_dolar;
}


Exercícios:

Um número primo é qualquer inteiro positivo que é divisível apenas por si próprio e por 1. Escreva uma função que recebe um inteiro positivo e, se este número for primo, retorna 1, caso contrário, retorna 0.


int primo(int numero);
void main()
{
  int entrada;
  printf("Digite um numero: ");
  scanf("%d",&entrada);
  if(primo(entrada))
  printf("\nNumero Primo");
  else printf("\nNumero nao Primo");
  getch();
}
int primo(int numero)
{
  int i;
  for(i=2;i<numero;i++)
  {
  if ((numero % i) == 0)
  return 0;
  }
  return 1;
}





Exemplo de função em C



Funções dividem grandes tarefas de computação em tarefas menores.

Em C, uma função é uma unidade de código de programa autônoma desenhada para cumprir uma tarefa particular.

Provavelmente a principal razão da existência de funções é impedir que o programador tenha de escrever o mesmo código repetidas vezes.


Sintaxe:
tipo nome_função(parâmetros com tipos)
{
    instruções;
}

Tipo de uma Função:

O tipo de uma função é determinado pelo tipo de valor que ela retorna e não pelo tipo de seus argumentos.
Os tipos possíveis de retorno de uma função são todos os tipos que o C suporta.
Para que um valor seja retornado pela função deve-se utilizar o comando return(valor), onde valor é o dado que se deseja retornar.
Quando uma função não retorna um valor deve-se declarar a palavra reservada void no lugar do tipo.

Parâmetros de uma Função

Em C, a maioria dos argumentos de funções são passados “por valor”.
Isto significa que à função chamada é dada uma cópia dos valores dos argumentos, e ela cria outras variáveis temporárias para armazenar estes valores.
Para todos os parâmetros da função é necessário definir seu tipo de dado.

Protótipos de Função

Protótipo de função significa declarar ao compilador o formato das funções que serão criadas por você programador.
Isto é feito, normalmente após a definição do cabeçalho do programa (includes).
Apenas a primeira linha da função deve ser declarada e adicionalmente deve ser colocado o símbolo de ponto e vírgula (;).

Exemplo 1

void linha(); // protótipo da função
void main()
{
    linha();
    printf("\xDB PROGRAMA EM C \xDB\n");
    linha();
    getch();
}

void linha()  // função propriamente dita
{
    int j;
    for(j=1;j<=17;j++)
    {
        printf("\xDB");
    }
    printf("\n");
}


Exemplo 2

float potencia(float b, float e);

void main()
{
    float base, expoente;
    printf("Entre com a base e o expoente: \n");
    scanf("%f %f",&base,&expoente);
    printf("Resultado = %f",potencia(base,expoente));
    getch();
}

float potencia(float b, float e)
{
    int resultado = 1;
    while(e > 0)
    {
        resultado = resultado * b;
        e--;
    }
    return(resultado);
}




Criar função em C



Funções dividem grandes tarefas de computação em tarefas menores.

Em C, uma função é uma unidade de código de programa autônoma desenhada para cumprir uma tarefa particular.

Provavelmente a principal razão da existência de funções é impedir que o programador tenha de escrever o mesmo código repetidas vezes.


Sintaxe:
tipo nome_função(parâmetros com tipos)
{
    instruções;
}

Tipo de uma Função:

O tipo de uma função é determinado pelo tipo de valor que ela retorna e não pelo tipo de seus argumentos.
Os tipos possíveis de retorno de uma função são todos os tipos que o C suporta.
Para que um valor seja retornado pela função deve-se utilizar o comando return(valor), onde valor é o dado que se deseja retornar.
Quando uma função não retorna um valor deve-se declarar a palavra reservada void no lugar do tipo.

Parâmetros de uma Função

Em C, a maioria dos argumentos de funções são passados “por valor”.
Isto significa que à função chamada é dada uma cópia dos valores dos argumentos, e ela cria outras variáveis temporárias para armazenar estes valores.
Para todos os parâmetros da função é necessário definir seu tipo de dado.

Protótipos de Função

Protótipo de função significa declarar ao compilador o formato das funções que serão criadas por você programador.
Isto é feito, normalmente após a definição do cabeçalho do programa (includes).
Apenas a primeira linha da função deve ser declarada e adicionalmente deve ser colocado o símbolo de ponto e vírgula (;).

Exemplo 1

void linha(); // protótipo da função
void main()
{
    linha();
    printf("\xDB PROGRAMA EM C \xDB\n");
    linha();
    getch();
}

void linha()  // função propriamente dita
{
    int j;
    for(j=1;j<=17;j++)
    {
        printf("\xDB");
    }
    printf("\n");
}


Exemplo 2

float potencia(float b, float e);

void main()
{
    float base, expoente;
    printf("Entre com a base e o expoente: \n");
    scanf("%f %f",&base,&expoente);
    printf("Resultado = %f",potencia(base,expoente));
    getch();
}

float potencia(float b, float e)
{
    int resultado = 1;
    while(e > 0)
    {
        resultado = resultado * b;
        e--;
    }
    return(resultado);
}




Comandos de Repetição de Blocos em C



Os comandos de repetição de blocos em linguagens de programação, também são conhecidos como comandos de iteração, ou comandos de laço ou ainda “loop” de instruções.
Estes comandos executam os blocos de instruções subordinados enquanto uma determinada condição permanecer como verdadeira.
Comando - for 
 
O comando for é o mais utilizado quando devemos repetir a execução de um ou mais blocos de instruções, um determinado número de vezes.
 
Sintaxe:
for(inicialização; teste; incremento)
{
   instruções;
}
A primeira expressão é utilizada para a inicialização, onde normalmente é inicializada uma variável contadora.
A inicialização é executada somente uma vez, no momento em que o laço é ativado.
O teste, normalmente é uma expressão relacional, que testa a validade de nova execução do laço.
O incremento, modifica o valor da variável utilizada para controle do laço.
Normalmente é um incremento de 1 no valor da variável.
Exemplo:
#include <stdio.h>
#include <conio.h>

void main()
{
int i;
for(i=1;i<=10;i++)
{
printf("\n%d",i);
}
getch();
}
Exemplos Flexibilidade - for

#include <stdio.h>
#include <conio.h>

void main()
{
int x,y;
for(x=0,y=0; x+y<10; x++,y++)
{
printf("\n%d",x+y);
}
getch();
}
Outro Exemplo:
#include <stdio.h>
#include <conio.h>

void main()
{
char c;
for( ; (c=getch()) != 's'; )
{
printf("\n%c",c);
}
}
Exercício:
Faça um programa que leia uma string do teclado e após isso escreva ela invertida na tela do usuário.
Solução:
#include <stdio.h>
#include <conio.h>
#include <string.h>

void main()
{
char str[50];
int i;
printf("Entre com uma palavra: ");
gets(str);

for(i=(strlen(str)-1);i>=0;i--)
{
printf("%c",str[i]);
}
getch();
}
Fazer um programa, usando obrigatoriamente a estrutura for, que calcule  escreva o valor de S onde:
 
Solução:
#include <stdio.h>
#include <conio.h>

void main()
{
int num, den;
float s=0;

for(num=1,den=1;num<=99;num+=2,den++)
{
s = s + (float)num/den;
}
printf("%f",s);
getch();
}
Sem o (float) a divisão seria uma divisão inteira:
Faça um programa que leia 20 valores reais e escreva seu somatório (use a estrutura for):
Solução:
#include <stdio.h>
#include <conio.h>

void main()
{
int num,i, s=0;
printf("Entre com 5 numeros\n");

for(i=1;i<=5;i++)
{
scanf("%d",&num);
s = s + num;
}
printf("%d",s);
getch();
}
Comando - while 
 
Comando normalmente utilizado quando é necessário repetir um bloco de instruções sem saber de antemão quantas vezes este bloco deverá ser executado.
 
Sintaxe:
while(condição)
{
   instruções;
}
Quando precisamos testar uma condição antes mesmo de iniciar a execução de um bloco de instruções devemos então utilizar o comando while com teste no início.
Exemplo:
#include <stdio.h>
#include <conio.h>

void main()
{
int i=1;
while(i <= 10)
{
printf("%d \n",i);
i++;
}
getch();
}
Exercício:
Faça um programa para calcular um valor A elevado a um expoente B. Os valores A e B deverão ser lidos, onde a > 0, b >= 0:
Solução:
#include <stdio.h>
#include <conio.h>

void main()
{
int a, b, resultado = 1;
printf("Entre com a base e o expoente: \n");
scanf("%d %d",&a,&b);
while(b > 0)
{
resultado = resultado * a;
b--;
}
printf("Resultado: %d",resultado);
getch();
}
Faça um programa para calcular N!, onde  N >= 0.
Solução:
#include <stdio.h>
#include <conio.h>

void main()
{
long int n, resultado=1;
printf("Entre com um numero: \n");
scanf("%ld",&n);

while(n > 0)
{
resultado = resultado * n;
n--;
}
printf("O fatorial eh igual a %ld",resultado);
getch();
}
Comando – do ... while
Para executar um bloco de instruções, subordinado a um laço de repetição, pelo menos uma vez, temos o comando do...while
Sintaxe:
do
{
   instruções;
}while (condição);
Exemplo:
#include <stdio.h>
#include <conio.h>

void main()
{
int i=1;

do
{
printf("\n %d",i);
i++;
}while(i <=10);
getch();
}
Exercícios:
Faça um programa para calcular a série Fibonacci até o vigésimo termo. A série tem a seguinte forma:  1,1,2,3,5,8,13,21,34,… (use obrigatoriamente a estrutura do...while).
Solução:
#include <stdio.h>
#include <conio.h>

void main()
{
int ant=1, prox=1, novo, cont=2;
printf("%d, %d",ant,prox);
do
{
novo = ant + prox;
printf(“, %d",novo);
ant = prox;
prox = novo;
cont++;
}while(cont <=20);
getch();
}
Faça um programa para ler um valor X e calcular Y = X+2X+3X+4X+5X+…+20X (use a estrutura do...while):
Solução:
#include <stdio.h>
#include <conio.h>

void main()
{
int x, y=0, i=1;
printf("Entre com um valor para x: ");
scanf("%d",&x);

do
{
y = y + (i * x);
i++;
}while(i <= 20);
printf("y = %d",y);
getch();
}
Comandos de Desvio de Execução:
Muitas vezes é necessário interromper o fluxo normal de processamento de um laço de repetição, independente deste laço ter sido implementado com for ou while.
Para fazer isso, temos dois comandos de desvio: o break e o continue.
O Comando break;
O comando break desvia o fluxo de processamento para fora do comando de repetição.
Mais precisamente, para a primeira linha após o término do comando de repetição.
O comando break pode ser tanto usado para terminar um teste case dentro de um comando switch quanto interromper a execução de um laço.
 
Quando o comando é utilizado dentro de um comando for o laço é imediatamente interrompido e o programa continua a execução no comando seguinte ao comando for.
 
No trecho de programa abaixo o comando for deve ler 100 números inteiros positivos. No entanto, se for digitado um número negativo o comando for é interrompido imediatamente sem que o número seja impresso.
for (i = 0; i <100; i++)
{
   scanf("%d", &um);
   if (num < 0) break;
   printf("%d\n", num);
}
O Comando continue;
O comando continue transfere o fluxo de processamento para o teste do comando de repetição.
Usando o continue com o for, antes do teste de associado ao for ser verificado ocorre o incremento das variáveis na seção de incremento do for.
O comando continue é parecido com o comando break. A diferença é que o comando continue interrompe a execução da iteração corrente passando para a próxima iteração do laço, se houver uma. No comando for o controle passa para o teste e o incremento do laço sejam executados, nos comandos while e do-while o controle passa para a fase de testes.
No trecho de programa abaixo o laço lê 100 números inteiros, caso o número seja negativo ele um novo número é lido.
for (i = 0; i < 100; i++)
{
  scanf("%d", &num);
  if (num < 0) continue;
  printf("%d\n", num);
}
Exemplo:
void main()
{
   float idade, total_idade=0, total_pessoa=0;
   char resp;
   while(1)
   {
      printf("\nIDADE: ");
      scanf("%f",&idade);
      if(idade <= 0)
      {
  printf("\nIdade Invalida, deseja continuar?(s/n)");
  resp = getche();
  if(resp == 's')
     continue;
  else break;
  }
       else{
  total_idade += idade;
  total_pessoa++;
}
   }
   printf("\nA Media de Idade e %f",(total_idade/total_pessoa));
   getch();
}
Exercício:
Altere o programa que calcula o fatorial de um número, de maneira que seja perguntado ao usuário se ele deseja calcular ou não o fatorial de um próximo número.
Solução:
void main()
{
double n, resultado;
char c;

while(1)
{
resultado = 1;
printf("Entre com um numero: \n");
scanf("%lf",&n);

while(n > 0)
{
resultado = resultado * n;
n--;
}
printf("O fatorial eh igual a %lf \n",resultado);
printf("\nDeseja Continuar(s/n)? ");
c = getch();
if(c == 's')
continue;
else break;
clrscr();
}
}

O Comando continue em C



O comando continue transfere o fluxo de processamento para o teste do comando de repetição.
Usando o continue com o for, antes do teste de associado ao for ser verificado ocorre o incremento das variáveis na seção de incremento do for.

O comando continue é parecido com o comando break. A diferença é que o comando continue interrompe a execução da iteração corrente passando para a próxima iteração do laço, se houver uma. No comando for o controle passa para o teste e o incremento do laço sejam executados, nos comandos while e do-while o controle passa para a fase de testes.
No trecho de programa abaixo o laço lê 100 números inteiros, caso o número seja negativo ele um novo número é lido.

for (i = 0; i < 100; i++)
{
  scanf("%d", &num);
  if (num < 0) continue;
  printf("%d\n", num);
}

Exemplo:
void main()
{
   float idade, total_idade=0, total_pessoa=0;
   char resp;
   while(1)
   {
      printf("\nIDADE: ");
      scanf("%f",&idade);
      if(idade <= 0)
      {
   printf("\nIdade Invalida, deseja continuar?(s/n)");
   resp = getche();
   if(resp == 's')
      continue;
   else break;
   }
       else{
   total_idade += idade;
   total_pessoa++;
}
   }
   printf("\nA Media de Idade e %f",(total_idade/total_pessoa));
   getch();
}

Exercício:
 
Altere o programa que calcula o fatorial de um número, de maneira que seja perguntado ao usuário se ele deseja calcular ou não o fatorial de um próximo número.
Solução:
void main()
{
double n, resultado;
char c;

while(1)
{
resultado = 1;
printf("Entre com um numero: \n");
scanf("%lf",&n);

while(n > 0)
{
resultado = resultado * n;
n--;
}
printf("O fatorial eh igual a %lf \n",resultado);
printf("\nDeseja Continuar(s/n)? ");
c = getch();
if(c == 's')
continue;
else break;
clrscr();
}
}

O Comando break em C



O comando break desvia o fluxo de processamento para fora do comando de repetição.
Mais precisamente, para a primeira linha após o término do comando de repetição.

O comando break pode ser tanto usado para terminar um teste case dentro de um comando switch quanto interromper a execução de um laço.
Quando o comando é utilizado dentro de um comando for o laço é imediatamente interrompido e o programa continua a execução no comando seguinte ao comando for.
 
No trecho de programa abaixo o comando for deve ler 100 números inteiros positivos. No entanto, se for digitado um número negativo o comando for é interrompido imediatamente sem que o número seja impresso.
 
for (i = 0; i <100; i++)
{
   scanf("%d", &um);
   if (num < 0) break;
   printf("%d\n", num);
}

O Comando continue;
O comando continue transfere o fluxo de processamento para o teste do comando de repetição.
Usando o continue com o for, antes do teste de associado ao for ser verificado ocorre o incremento das variáveis na seção de incremento do for.

O comando continue é parecido com o comando break. A diferença é que o comando continue interrompe a execução da iteração corrente passando para a próxima iteração do laço, se houver uma. No comando for o controle passa para o teste e o incremento do laço sejam executados, nos comandos while e do-while o controle passa para a fase de testes.
No trecho de programa abaixo o laço lê 100 números inteiros, caso o número seja negativo ele um novo número é lido.

for (i = 0; i < 100; i++)
{
  scanf("%d", &num);
  if (num < 0) continue;
  printf("%d\n", num);
}

Exemplo:
void main()
{
   float idade, total_idade=0, total_pessoa=0;
   char resp;
   while(1)
   {
      printf("\nIDADE: ");
      scanf("%f",&idade);
      if(idade <= 0)
      {
   printf("\nIdade Invalida, deseja continuar?(s/n)");
   resp = getche();
   if(resp == 's')
      continue;
   else break;
   }
       else{
   total_idade += idade;
   total_pessoa++;
}
   }
   printf("\nA Media de Idade e %f",(total_idade/total_pessoa));
   getch();
}

Exercício:
Altere o programa que calcula o fatorial de um número, de maneira que seja perguntado ao usuário se ele deseja calcular ou não o fatorial de um próximo número.

Solução:
void main()
{
double n, resultado;
char c;

while(1)
{
resultado = 1;
printf("Entre com um numero: \n");
scanf("%lf",&n);
while(n > 0)
{
resultado = resultado * n;
n--;
}
printf("O fatorial eh igual a %lf \n",resultado);
printf("\nDeseja Continuar(s/n)? ");
c = getch();
if(c == 's')
continue;
else break;
clrscr();
}
}

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Best Buy Coupons