برنامه گرفتن نمرات دانشجویان و چاپ دومین نمره برتر- سی پلاس

0098

New Member
کمک در نوشتن برنامه

با سلام خدمت دوستان گلم

من می خوام برنامه ای بنویسم که شماره دانشجویی ومعدل تعداد n دانشجو رو از ورودی خوانده و دانشجویی را که دومین معدل را از نظر بزرگی دارد پیدا کند وبه خروجی ببرد

ممنون می شم اگه دوستان کمک کنند در طریقه نوشتن برنامه چون من هر کاری کردم نتونستم هر جوری نوشتم غلط از اب در امد

باتشکر :rose::rose:
 

saalek110

Well-Known Member
راهی که من به ذهنم می رسد این است: ابتدا n را از کاربر بگیرید. بعد حلقه ای بسازید که n بار ورودی بگیرد و در آرایه ای بریزد. طول آرایه باید n باشد. بعد آرایه را سورت کنید. مثلا سورت حبابی.(می توانید سرچ کنید تا روش سورت را پیدا کنید.) بعد دومین عضو را چاپ کنید. اینکه در حالت اجرا آرایه n عضوی بسازید هم بحث خودش را دارد.

در سایت زیر هم سورس های سی را ببینید:
http://www.planetsourcecode.com
عضو شوید.

من (( دینامیک آرایه سی پلاس )) را سرچ کردم در گوگل و به این تاپیک رسیدم:
http://forum.p30world.com/showthread.php?t=116833
شاید هم نیاز به آرایه دینامیک نباشه. به هر صورت من چیزهایی که به ذهنم می رسید را گفتم.
 

the_king

مدیرکل انجمن
این کد بدون استفاده از آرایه، در لیست مرتب شده مشخصات دانشجو ها بر اساس معدل، مشخصات دانشجوی دوم را
چاپ می کند. از هر مورد نام، شماره دانشجویی و معدل، سه نمونه متفاوت داریم، نمونه اول برای خواندن از ورودی
بکار می رود. نمونه دوم، همیشه مشخصات دانشجویی که معدلش بیشتر از بقیه است نگه می دارد.
نمونه سوم، همیشه مشخصات دانشجویی را نگه می دارد که از نمونه دوم معدلش کمتر است ولی از بقیه دانشجو ها
بیشتر است.

کد:
#include <stdio.h>
#include <conio.h>
#include <string.h>

void main()
{
	int n,i;
	char id[30],id1[30],id2[30];
	char name[30],name1[30],name2[30];
	double average,average1=-1,average2=-1;
	printf("Please enter n : ");
	scanf("%d",&n);
	for (i=0;i<n;i++)
	{
		printf("Please enter name    : ");
		do {gets(name);} while(!name[0]);
		printf("Please enter id      : ");
		do {gets(id);} while(!id[0]);
		printf("Please enter average : ");
		scanf("%lf",&average);
		if (average>average1)
		{
			average2=average1;
			strcpy(name2,name1);
			strcpy(id2,id1);
			average1=average;
			strcpy(name1,name);
			strcpy(id1,id);
		}
		else if (average>average2)
		{
			average2=average;
			strcpy(name2,name);
			strcpy(id2,id);
		}
	}
	if (n>1)
		printf ("\n2th name = %s , id = %s , average = %2.2lf",name2,id2,average2);
	getch();
}
 

جدیدترین ارسال ها

بالا