Wprowadzanie wartosci do tablicy

0

Witam, otóż mam taki program który wczytuje wartości z klawiatury, zapamiętuje je, a potem wyświetla. A chciałbym zrobić tak, by wartości które wpisuje były większe od zera, w przeciwnym razie wyskoczy napis "wpisujemy tylko wartości dodatnie"
Program:

 #include <stdio.h>
#include <stdlib.h>

int main()
{
	int T[2];
	int i;
	int n=2;

if(T[i]<0)
	{

		for(i=0;i<n;i++)
		{
		printf("wprowadz wartosci do tablica:%d\n", i);	
		scanf("%d", &T[i]);
		}
		
	}
	
	else
		{
			printf("wpisujemy tylko wartości dodatnie");
		}
		
			for(i=0;i<n;i++)
				{
				printf("tablica %d = %d\n", i, T[i]);
				}

	return 0;
	
} 
1

Dlaczego ten if jest przed wpisywaniem? Przecież to nie ma żadnego sensu. Przemyśl to raz jeszcze.

0
Endrju napisał(a):

Dlaczego ten if jest przed wpisywaniem? Przecież to nie ma żadnego sensu. Przemyśl to raz jeszcze.
Nie tylko przed wpisywaniem, a jeszcze przed ustaleniem wartości zmiennej i.

To tak jakby generalna reguła dla każdego T[i] ... ;D to jest żart oczywiście, nie ma czegoś takiego przynajmniej w C/C++

0

Dzięki za wskazówki już ogarnąłem ;)

#include <stdio.h>
#include <stdlib.h>

int main()
{
	int T[2];
	int i,aa;
	int n=2;



		for(i=0;i<n;i++)
		{
		printf("wprowadz wartosci do tablica:%d\n", i);	
		scanf("%d", &T[i]);
		
		if(T[i]<0)
			{
				printf("wpisuj tylko dodatnie wartosci!"); 
				 return 0;
			}
		}

			for(i=0;i<n;i++)
				{
				printf("tablica %d = %d\n", i, T[i]);
				}

		
	return 0;
	
}
1

W czy nie prościej zrobić tak:

#include <stdio.h>

#define n 5
int main()
  {
   unsigned T[n],i;
   for(i=0;i<n;++i)
      {
       printf("wprowadz wartosci do tablicy %u: ",i+1);
       scanf("%u",T+i);
      }
   for(i=0;i<n;++i) printf("tablica %u = %u\n",i+1,T[i]);
   return 0; 
  }

typ unsigned oraz format %u - zapewniają liczby nieujemne.

0

o kurcze i teraz kod nie jest tak zagmatwany. Muszę jeszcze sporo się pouczyć by stosować tak chytre sposoby ;p

1 użytkowników online, w tym zalogowanych: 0, gości: 1