PDA

View Full Version : راهنمایی در کد - اعداد اول - مجموع ارقام



mnbv88
جمعه 11 آبان 1397, 01:57 صبح
سلام دوستان
این برنامه اعداد بین 10 تا 100 که هم عدد مضرب 3 و هم اول نباشه رو چاپ میکنه
مشکلم اینه که میخوام مجموع ارقام هم چاپ بشه ولی هر کاری کردم جواب نداد و برنامه خراب میشه اگه میشه کمک کنید لطفا ممنون

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication48
{
class Program
{
static void Main(string[] args)
{
int n;

for (n = 10; n <= 100; n++)
{
if(n%3!=0 && n%2==0)


Console.WriteLine(n);



}

Console.ReadKey();
}
}
}

کدی که واسه مجموع ارقام استفاده میکنم اینه



r = n % 10;
n = n / 10;
s = s + r;



و اینکه تو قسمت main متغیر r ,s=0 رو هم تعریف کردم

........

ممنون میشم راهنمایی کنید

Mahmoud.Afrad
جمعه 11 آبان 1397, 05:29 صبح
چه مشکلی دقیقا؟


در ضمن عدد اول بودن با عدد زوج بودن فرق دارد. این کدی که نوشتید اعداد زوجی که مضرب 3 نیستند را در خروجی نمایش میده.

mnbv88
جمعه 11 آبان 1397, 11:56 صبح
چه مشکلی دقیقا؟


در ضمن عدد اول بودن با عدد زوج بودن فرق دارد. این کدی که نوشتید اعداد زوجی که مضرب 3 نیستند را در خروجی نمایش میده.

سلام

اول اینکه اون کد مجموع ارقام رو که میزارم برنامه بهم میریزه
و اگه میشه در مورد عدد اول هم راهنمایی کنید چیکار کنم
این کد رو تست کنید ، واسه 10 تا 100 درست جواب میده اعدادی که اول نیستند و مضرب 3 نیستند رو نمایش نمیده فقط

mnbv88
جمعه 11 آبان 1397, 12:17 عصر
اینم کد کامل مشکلش چیه؟
میخوام مجموع اعداد بین 10 تا 100 که هم عدد مضرب 3 و هم اول نباشه رو چاپ میکنه

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication48
{
class Program
{
static void Main(string[] args)
{
int n,r;
int s = 0;
for (n = 10; n <= 100; n++)
{
if (n % 3 != 0 && n % 2 == 0)
{

r = n % 10;
n = n / 10;
s = s + r;
Console.WriteLine(s);

}

}

Console.ReadKey();
}
}
}

mr.sirwan
جمعه 11 آبان 1397, 12:43 عصر
کد جمع کردن ارقام رو باید داخل یه حلقه دیگه مثلا while بذاری که شرط ادامه ش اینه که digits بزرگتر از صفر باشه، به اینصورت:

digits = n;
while(digits>0)
{
r = digits % 10;
digits = digits / 10;
s = s + r;
}

mnbv88
جمعه 11 آبان 1397, 12:54 عصر
کد جمع کردن ارقام رو باید داخل یه حلقه دیگه مثلا while بذاری که شرط ادامه ش اینه که digits بزرگتر از صفر باشه، به اینصورت:

digits = n;
while(digits>0)
{
r = digits % 10;
digits = digits / 10;
s = s + r;
}




این کد رو بعد از if بزارم ؟
بعدشم دستور چاپ رو بنویسم

mnbv88
جمعه 11 آبان 1397, 12:58 عصر
اینجوری باید باشه درسته ؟
میشه شما هم تست کنید ببینید
مجموع اعداد بین 10 تا 100 که هم عدد مضرب 3 و هم اول نباشه رو چاپ میکنه یا نه
من تست کردم خروجی درست نیست
لطفا راهنمایی کنید


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication48
{
class Program
{
static void Main(string[] args)
{
int n,r;
int s = 0;
int digits;
for (n = 10; n <= 100; n++)
{
if (n % 3 != 0 && n % 2 == 0)
{

digits = n;
while (digits > 0)
{
r = digits % 10;
digits = digits / 10;
s = s + r;
}
Console.WriteLine(s);
}

}

Console.ReadKey();
}
}
}

mr.sirwan
جمعه 11 آبان 1397, 13:57 عصر
شما مجموع ارقام هر عدد بین 10 تا 100 رو به تنهایی میخوای؟ یا مجموع ارقام تمام اعداد از 10 تا 100 که اول نباشه و.... ؟
مثلا مجموع ارقام عدد 14 (که میشه 5) رو به تنهایی میخوای؟ یا میخوای حاصل جمع ارقام 14 رو با مثلا مجموع ارقام 15 جمع کنی و الی آخر...؟

اگر حالت اول رو مد نظرته باید قبل از شرط if مقدار s رو برابر صفر قرار بدی

mnbv88
جمعه 11 آبان 1397, 14:51 عصر
شما مجموع ارقام هر عدد بین 10 تا 100 رو به تنهایی میخوای؟ یا مجموع ارقام تمام اعداد از 10 تا 100 که اول نباشه و.... ؟
مثلا مجموع ارقام عدد 14 (که میشه 5) رو به تنهایی میخوای؟ یا میخوای حاصل جمع ارقام 14 رو با مثلا مجموع ارقام 15 جمع کنی و الی آخر...؟

اگر حالت اول رو مد نظرته باید قبل از شرط if مقدار s رو برابر صفر قرار بدی

ممنون حل شد

فقط در مورد

if (n % 3 != 0 && n % 2 == 0)

این شرطم واسه اعدادی که مضرب 3 و اول نباشن درسته
اگه نه درستش چجوری میشه ممنون میشم کمک کنید مرسی

mr.sirwan
جمعه 11 آبان 1397, 15:13 عصر
آره باید برای هر عدد بین 10 تا 100 مقدار s هر مرتبه برابر صفر بشه

mnbv88
جمعه 11 آبان 1397, 15:22 عصر
آره باید برای هر عدد بین 10 تا 100 مقدار s هر مرتبه برابر صفر بشه

فقط در مورد

if (n % 3 != 0 && n % 2 == 0)

این شرطم واسه اعدادی که مضرب 3 و اول نباشن درسته ?

mr.sirwan
جمعه 11 آبان 1397, 15:49 عصر
تعریف عدد اول چیه؟ عددی که فقط به خودش و به یک بخش پذیر باشه و هیچ مضرب دیگه ای نداشته باشه (پس باید با یه حلقه for چک کنی که عددت چندتا مضرب غیر از خودش و یک داره)
عدد صفر و 1 اول نیستن
اعداد 2 و 3 اول هستن

از روی این سه تا جمله میتونی چندتا شرط ساده if و else بنویسی، کد چک کردن اول بودن عدد رو در قالب یه تابع بنویس که کدت تمیز تر باشه، بعد تابعت رو توی شرط if همراه با n % 3 != 0 فراخوانی کن

mnbv88
جمعه 11 آبان 1397, 16:12 عصر
تعریف عدد اول چیه؟ عددی که فقط به خودش و به یک بخش پذیر باشه و هیچ مضرب دیگه ای نداشته باشه (پس باید با یه حلقه for چک کنی که عددت چندتا مضرب غیر از خودش و یک داره)
عدد صفر و 1 اول نیستن
اعداد 2 و 3 اول هستن

از روی این سه تا جمله میتونی چندتا شرط ساده if و else بنویسی، کد چک کردن اول بودن عدد رو در قالب یه تابع بنویس که کدت تمیز تر باشه، بعد تابعت رو توی شرط if همراه با n % 3 != 0 فراخوانی کن

این واسه عدد اول بودن هست
که مثلا دو تا for بنویسم که از اولین عدد اول شروع بشه و...
ولی من میخوام اونایی که اول نیستن چاپ بشن بدون استفاده از تابع

راهی هست ؟ممنون

mr.sirwan
جمعه 11 آبان 1397, 16:17 عصر
دوست عزیز دو تا حلقه نمیخواد، یه حلقه داره توی main پیمایش میشه تو فقط باید در هر تکرار حلقه عدد n رو به تابعت پاس بدی و تابع بهت مقدار bool برمیگردونه، بعدشم شما فقط نیازه که با عملگر ! نتیجه تابع رو معکوس کنی دیگه

mnbv88
جمعه 11 آبان 1397, 16:55 عصر
این کد من واسه اعداد اول بین 10 تا 100 هست
واسه اینکه اعداد غیر اول چاپ بشن باید چیکار کنم
در واقع اعدادی که اول نباشه و مضرب سه هم نباشه

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication50
{
class Program
{
static void Main(string[] args)
{
int a, b;
bool c = false;
for(a=10;a<100;a++)
{
for(b=2;b<a;b++)
{
if (a%b==0)
{
c=true;
break;
}
else
c=false;
}

if(c==false)
Console.WriteLine(a);
}

Console.ReadKey();
}
}
}

mnbv88
جمعه 11 آبان 1397, 17:15 عصر
اگه کسی از دوستان میتونه با استفاده از این دو تا برنامه که گذاشتم
برنامه اعداد بین 10 تا 100 که هم عدد مضرب 3 و هم اول نباشه رو برام بنویسه لطفا

ممنون

mr.sirwan
جمعه 11 آبان 1397, 20:02 عصر
طبق تعاریفی که تو پست قبلی گفتم، تابع چک کردن اول بودن عدد به این شکل درمیاد:


public static bool IsPrime (int n)
{
if (n < 2)
return false;
else if (n < 4)
return true;
else if (n % 2 == 0)
return false;
else
{
float sqrtn = Math.Sqrt(n);
for (int i = 3; i <= sqrtn; i += 2)
if (n % i == 0) return false;
}

return true;
}
نحوه استفاده در کد:

if (n % 3 != 0 && !IsPrime(n))

تحلیلش با خودت