Ir ao conteúdo

Posts recomendados

Postado
#include <stdio.h>

int main()
{
	int num[10]; //Declara um vetor de inteiros de 10 posições
	int count = 0;
	int totalnums;
	
	do
	{
		printf ("\nEntre com um numero (-999 p/ terminar): ");
		scanf("%d", &num[count]);
		count++;
	} while (num[count-1]!=-999 || (num[count] < 11)) ;
	
	totalnums=count-1;
	
	printf("\n\n\n\t Os numeros que voce digitou foram: \n\n");
	
	for (count=0; count<totalnums; count++)
		printf(" %d", num[count]);
	return(0);	
}

Boa noite, pessoal. Preciso fazer com que o loop seja interrompido caso o usuário entre com 10 números ou caso o Flag (-999) seja digitado, pensei em inserir a condição || (num[count] < 11) dentro do while, mas não deu certo. Alguém poderia ajudar? desde já agradeço.

  • Obrigado 1
Postado

@jpaulofsa   você poderia colocar assim  :

#include <stdio.h>
#include <time.h>
#include <windows.h>
#include <stdlib.h>
/*             0     1    2     3   4      5      6      7         8    */
typedef enum{black,blue,green,cyan,red,magenta,brown,lightgray,darkgray,/* nome das cores */
lightblue,lightgreen,lightcyan,lightred,lightmagenta,yellow,white} colors;
/*  9         10         11        12        13         14    15        */

static int __BACKGROUND = 1/*BLACK*/;/*pode ser o numero ou o nome da cor*/
static int __FOREGROUND = lightgray;

void textcolor_2 (int letra, int fundo){/*para mudar a cor de fundo mude o background*/
    __FOREGROUND = letra;
    __BACKGROUND = fundo;
    SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),
    letra + (__BACKGROUND << 4));
}
                  /* y = linha de 0 a 24 , x = coluna de 0 a 80 */
void gotoxy_2(int x, int y){/*imprimir na linha e coluna desejada */
  COORD c;
  c.X = x;
  c.Y = y;
  SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
}
void som(int f){
    Beep(f,150);/* primeiro a frquência depois o tempo de duração do som */
}
int sm[10]={800,2200,2200,2200,800,2200,800,2200,800,2200};
int main()
{
    srand(time(NULL));
    int num[10]; //Declara um vetor de inteiros de 10 posições
    int count = 0;
    int totalnums,j,i,aux;
    textcolor_2(12,14);
    system("cls");
    do
    {
        printf ("\nEntre com um numero (-999 p/ terminar): ");
        scanf("%d", &num[count]);
        count++;
    }while (num[count-1]!=-999 && count < 10) ;/* count eh a quantidade de numeros */
                                               /* repete se os dois forem verdadeiros */
    totalnums=count;/* eh count mesmo pois vai ate enquanto for menor que count */

    for(j=0;j<count-1;j++)
        for(i=j+1;i<count;i++)
            if( num[j] > num[i]){
                aux    = num[j];
                num[j] = num[i];
                num[i] = aux   ;
            }
    printf("\n\n\n\t Em Ordem Crescente , Os N%cmeros Que Voc%c Digitou Foram: \n\n",233,136);

    int px,Lin;                               /* variáveis simples                       */
    HANDLE hOut;                              /* controle dos dispositivos do pc         */
    hOut= GetStdHandle(STD_OUTPUT_HANDLE);    /* pega a saída padrão                     */
    CONSOLE_SCREEN_BUFFER_INFO SBInfo;        /* informações sobre a buffer da tela      */
    GetConsoleScreenBufferInfo(hOut, &SBInfo);/* pega a posição do cursor do console     */
    px = SBInfo.dwCursorPosition.X;           /* pX será a posição da coluna do cursor no console */
    Lin= SBInfo.dwCursorPosition.Y;           /* pY será a posição da linha do cursor no console  */

    gotoxy_2(8,Lin);

    for (count=0; count<totalnums; count++){
        aux=rand()%15;
        if(aux==14 || aux==11)aux=rand()%15;
        textcolor_2(aux,14);
        printf(" %d", num[count]);
        som(sm[count]);
    }
    for(j=0;j<5;j++)
        printf("\n");
    textcolor_2(7,14);
    return(0);
}

 

  • Curtir 1
Postado

@devair1010 Muito obrigado, mas agora tem coisas avançadas que não vi ainda.

9 horas atrás, devair1010 disse:

@jpaulofsa   você poderia colocar assim  :

#include <stdio.h>
#include <time.h>
#include <windows.h>
#include <stdlib.h>
/*             0     1    2     3   4      5      6      7         8  */
typedef enum{BLACK,BLUE,GREEN,CYAN,RED,MAGENTA,BROWN,LIGHTGRAY,DARKGRAY,   /* nome das cores */
LIGHTBLUE,LIGHTGREEN,LIGHTCYAN,LIGHTRED,LIGHTMAGENTA,YELLOW,WHITE} COLORS;
/*  9         10         11        12        13         14    15 */

static int __BACKGROUND = 1/*BLACK*/;/*pode ser o numero ou o nome da cor*/
static int __FOREGROUND = LIGHTGRAY;

void textcolor_2 (int letra, int fundo){/*para mudar a cor de fundo mude o background*/
    __FOREGROUND = letra;
    __BACKGROUND = fundo;
    SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),
    letra + (__BACKGROUND << 4));
}
                  /* y = linha de 0 a 24 , x = coluna de 0 a 80 */
void gotoxy_2(int x, int y){/*imprimir na linha e coluna desejada */
  COORD c;
  c.X = x;
  c.Y = y;
  SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
}
void som(int f){
    Beep(f,150);/* primeiro a frquência depois o tempo de duração do som */
}
int sm[10]={800,2200,2200,2200,800,2200,800,2200,800,2200};
int main()
{
    srand(time(NULL));
	int num[10]; //Declara um vetor de inteiros de 10 posições
	int count = 0;
	int totalnums,j,i,aux;
    textcolor_2(12,14);
    system("cls");
	do
	{
		printf ("\nEntre com um numero (-999 p/ terminar): ");
		scanf("%d", &num[count]);
		count++;
	} while (num[count-1]!=-999 && count < 10) ;/* count eh a quantidade de numeros */
                                                /* repete se os dois forem verdadeiros */
	totalnums=count;/* eh count mesmo pois vai ate enquanto for menor que count */

    for(j=0;j<count-1;j++)
        for(i=j+1;i<count;i++)
            if( num[j] > num[i]){
                aux    = num[j];
                num[j] = num[i];
                num[i] = aux   ;
            }
	printf("\n\n\n\t Em Ordem Crescente , Os N%cmeros Que Voc%c Digitou Foram: \n\n",233,136);

	int px,Lin;                               /* variáveis simples                       */
    HANDLE hOut;                              /* controle dos dispositivos do pc         */
    hOut= GetStdHandle(STD_OUTPUT_HANDLE);    /* pega a saída padrão                     */
    CONSOLE_SCREEN_BUFFER_INFO SBInfo;        /* informações sobre a buffer da tela      */
    GetConsoleScreenBufferInfo(hOut, &SBInfo);/* pega a posição do cursor do console     */
    px = SBInfo.dwCursorPosition.X;           /* pX será a posição da coluna do cursor no console */
    Lin= SBInfo.dwCursorPosition.Y;           /* pY será a posição da linha do cursor no console  */

    gotoxy_2(8,Lin);

	for (count=0; count<totalnums; count++){
        aux=rand()%15;
        if(aux==14 || aux==11)aux=rand()%15;
        textcolor_2(aux,14);
		printf(" %d", num[count]);
		som(sm[count]);
	}
    for(j=0;j<5;j++)
        printf("\n");
    textcolor_2(7,14);
	return(0);
}

 

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...