چاپ اعداد 1 تا 100 در C (زبان سی) – با 15 روش مختلف

چاپ اعداد 1 تا 100 با زبان برنامه نویسی سی (C) نسبت به زبان های دیگری مانند پایتون پیچیده تر است. اما برخی از روش ها مانند استفاده از حلقه for و while در هر دو زبان ماهیت یکسانی دارند. ما قبلا در مطلب “چاپ اعداد 1 تا 100 در پایتون” به این موضوع پرداخته ایم.
در این مطلب قصد داریم 15 روشی که با زبان C می توانید اعداد یک تا صد را چاپ کنید را معرفی کنیم. استفاده از هر روش بستگی به پروژه و کاربرد شما دارد. ممکن است برای اجرای پروژه یا تمرین ملزم به استفاده از روش خاصی شده باشید. علاوه بر این، به راحتی می توانید هر کدام اسکریپت های زیر را کپی کنید.
چگونه اعداد 1 تا 100 را پرینت کنیم؟
1- با استفاده از حلقه for:
این روش متداول ترین و ساده ترین راه برای چاپ اعداد است. از یک حلقه استفاده میکنیم که مقدار متغیر را در هر تکرار افزایش میدهد. این روش نسبت به استفاده از حلقه while
گزینه خیلی بهتری است. زیرا حلقه for
یک بار عملیات را انجام میدهد و متوقف می شود.
#include
int main()
{
for (int i = 1; i <= 100; i++)
{
printf("%d\n", i);
}
return 0;
}
2- با استفاده از حلقه while:
حلقه while
تا زمانی که شرط برقرار باشد اجرا (loop) میشود. این روش مشابه حلقه for
است ولی نیاز به تعریف و افزایش مقدار متغیر در خارج و داخل حلقه دارد. اجرای حلقه while
نسبت به روش قبلی سنگین تر است. برای همین بهینه ترین روش استفاده از حلقه for
می باشد.
#include
int main()
{
int i = 1;
while (i <= 100)
{
printf("%d\n", i);
i++;
}
return 0;
}
3- با استفاده از یک حلقه do-while:
این روش شبیه به حلقه while
است با این تفاوت که حداقل یک بار اجرا میشود حتی اگر شرط برقرار نباشد.
حلقه do-while چگونه کار می کند؟
- بدنه حلقه do-while یکبار اجرا می شود سپس عبارت شرطی بررسی خواهد شد.
- اگر عبارت شرطی درست باشد، بدنه حلقه دوباره اجرا شده و عبارت شرطی نیز دوباره بررسی می شود.
- این روند ادامه می یابد تا زمانی که عبارت شرطی نادرست شود.
- اگر عبارت شرطی نادرست باشد و مقدار صفر برگرداند، حلقه تمام می شود.
#include
int main()
{
int i = 1;
do
{
printf("%d\n", i);
i++;
}
while (i <= 100);
return 0;
}
4- تابع بازگشتی (Recursion):
از تابع بازگشت (Recursive Function) استفاده می شود. هر بار تابع خودش را فراخوانی میکند تا به 100 برسد.
#include
void printNumbers(int n)
{
if (n > 100) return;
printf("%d\n", n);
printNumbers(n + 1);
}
int main() {
printNumbers(1);
return 0;
}
5- با استفاده از یک آرایه:
ابتدا اعداد را در آرایه ذخیره می کنیم و سپس چاپ می کنیم. این روش منابع بیشتری مصرف می کند.
#include
int main()
{
int numbers[100];
for (int i = 0; i < 100; i++)
{
numbers[i] = i + 1;
printf("%d\n", numbers[i]);
}
return 0;
}
6- استفاده از حلقه و عملگر ?: :
از عملگر سهگانه (? :
) در شرط استفاده شده است. این روش کاربرد چندانی ندارد و پیچیدهتر است.
#include
int main()
{
for (int i = 1; i <= 100 ? printf("%d\n", i), i++ : 0; );
return 0;
}
7- با استفاده از ماکرو (Macro):
از ماکرو برای سادهتر کردن کد استفاده شده است. این روش در کدهای بزرگ تر مفید است.
#include
#define PRINT_NUMBERS(start, end) for (int i = start; i <= end; i++) printf("%d\n", i);
int main()
{
PRINT_NUMBERS(1, 100);
return 0;
}
8- استفاده از پوینتر (Pointer):
ابتدا اعداد در آرایه ذخیره می شوند و سپس با پوینتر چاپ می شوند.
#include
int main()
{
int numbers[100];
for (int i = 0; i < 100; i++)
{
numbers[i] = i + 1;
}
int *ptr = numbers;
for (int i = 0; i < 100; i++)
{
printf("%d\n", *(ptr + i));
}
return 0;
}
9- استفاده از فایل متنی:
ابتدا یک فایل txt تعریف می شود و سپس اعداد درون فایل نوشته می شوند و در آخر می توان آن ها را از فایل خواند.
#include
int main()
{
FILE *file = fopen("numbers.txt", "w");
for (int i = 1; i <= 100; i++)
{
fprintf(file, "%d\n", i);
}
fclose(file);
return 0;
}
10- بدون استفاده از حلقه (با بازگشت Tail Recursion):
روش بازگشتی مشابه روش چهارم اما بهینه تر است.
#include
void printTailRecursion(int n)
{
if (n > 100) return;
printf("%d\n", n);
printTailRecursion(n + 1);
}
int main()
{
printTailRecursion(1);
return 0;
}
11- استفاده از goto:
این روش از goto
استفاده می کند که معمولا در برنامه نویسی مدرن توصیه نمی شود.
#include
int main()
{
int i = 1;
start:
if (i > 100) return 0;
printf("%d\n", i);
i++;
goto start;
}
12- استفاده از آرگومان های خط فرمان:
مشابه روش های دیگر است ولی در خط فرمان (cmd) اجرا می شود.
#include
int main(int argc, char *argv[])
{
for (int i = 1; i <= 100; i++)
{
printf("%d\n", i);
}
return 0;
}
13- استفاده از یک متغیر استاتیک:
از متغیر استاتیک (Static) در تابع استفاده میشود
#include
void printNumbers()
{
static int i = 1;
if (i > 100) return;
printf("%d\n", i++);
printNumbers();
}
int main() {
printNumbers();
return 0;
}
14- استفاده از بیت ماسک:
از عملیات بیت به بیت استفاده شده است که در اینجا کار خاصی اضافه نمیکند.
#include
int main()
{
for (int i = 1; i <= 100; i++)
{
printf("%d\n", i & 0xFF);
}
return 0;
}
15- با استفاده از چندین دستور printf:
این روش غیر عملی است و فقط برای نمایش است.
#include
int main()
{
printf("1\n2\n3\n... تا 100\n");
return 0;
}
روش 1 (با حلقه for
) به عنوان ساده ترین و استانداردترین راه، کاربرد بیشتری دارد. این روش در هر پروژه ای قابل استفاده است، منابع کمتری مصرف می کند، و کد قابل خواندن و نگهداری است.
البته استفاده از هر یک این روش ها بستگی به خودتان و پروژه دارد. مابقی روش ها صرفا برای علاقه مندان و افرادی است که قصد دارند در زمینه برنامه نویسی مهارت و دانش بالایی کسب کنند. خوشحال می شویم دیدگاهتان را در مورد هر یک از این راه ها بشنویم. در پایین صفحه میتونید دیدگاهتون رو ارسال کنید.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.