Write a C program that prints values between user-specified lower and upper limits using a loop. The program should ask the limits first and then print from the lower to the upper.
 What if the user enters the upper limit before the lower? Improve your solution!


Cevap :

Cevap:

#include <stdio.h>

int main()

{

int altLimit;

int ustLimit;

printf("Lütfen alt limiti giriniz..: ");

scanf("%d",&altLimit);

printf("Lütfen üst limiti giriniz..: ");

scanf("%d", &ustLimit);

int i = altLimit + 1;

for(i; i < ustLimit; i++)

{

 printf("%d\n", i);

}

}

Açıklama:

*Öncelikle integer değer olarak alt limit ve üst limiti bellekte tanımladım

*Bu değerleri kullanıcıdan girmesini istedim

*Bizden istediği bu iki  değer arasındaki sayıların yazdırılması olduğu için i adında bir değişken oluşturdum ve bu değişkenin değerini alt limitin bir fazlası olarak verdim (bir fazlası vermemin sebebi bizden soruda alt limiti ve üst limiti değil yalnızca arasındaki değerleri istemesi)

*Daha sonra for döngüsünde kısaca şunu yazdım:

-i değişkeninden başla (alt limitin bir fazlası)

-üst limite kadar git (üst limiti dahil etmedim, etmek istesem <= kullanırdım)

-ve sonsuz döngüye girmeyip tüm sayıları yazdırması için i'yi birer birer arttır

*Döngünün her adımında da o anki i'nin değerini yazdırmasını  istedim.

Görseli göster Pragmataw

Answer:

There is a simple solution. Firstly, you can check these numbers to find the lower or the upper(choose one). For example, I chose the lower and checked the numbers to define which is lower:

variables: upperLimit for upper, lowerLimit for lower, tempLimit for temporary number.

if(upperLimit<lowerLimit)

{

tempLimit = lowerLimit;

lowerLimit = upperLimit;

upperLimit = tempLimit;

}

You have to use a temporary variable to storage one number before changing the lower and the upper. Otherwise, your lower limit and upper limit will be equal (we don't want that).

You can test this code and understand how it is work:

 int lowerLimit = 20;

 int upperLimit = 18;

 printf("Lower limit is: %d", lowerLimit);

 printf("\nUpper limit is: %d", upperLimit);

 if(upperLimit<lowerLimit)

 {

   int tempLimit = lowerLimit;

   lowerLimit = upperLimit;

   upperLimit = tempLimit;

 }

 printf("\nLower limit is: %d", lowerLimit);

 printf("\nUpper limit is: %d", upperLimit);

 return 0;

Finally, this is your code to make what you want:

 int lowerLimit;

 int upperLimit;

 printf("Enter lower limit: ");

 scanf("%d", &lowerLimit);

 printf("Enter upper limit: ");

 scanf("%d", &upperLimit);

 if(upperLimit<lowerLimit)

 {

   int tempLimit = lowerLimit;

   lowerLimit = upperLimit;

   upperLimit = tempLimit;

 }

 printf("\nLower limit is: %d", lowerLimit);

 printf("\nUpper limit is: %d", upperLimit);

 return 0;

There is one more possibility for this situation. What if the user enters same number for upper and lower limits?