Yahya دوشنبه 11 اردیبهشت 1391 20:54 نظرات ()
مسئله:

این برنامه  نام، نام خانوادگی و کد ملی دانشجویانی به تعداد N را از ورودی گرفته و تعداد بیشترین تکرار نام را به همراه تعداد تکرار آن را در خروجی نشان می دهد:

توضیح: در ابتدا یک ساختاری برای دانشجو تعریف کردم تا مشخصات هر داشنجو را در اون نگه داریم، بعد یک آرایه 50 تایی ساختم از این ساختار، بعد از تعریف اونها، از ورودی تعدادی که میخواهد رو میپرسه و بعد برنامه با استفاده از یک حلقه مشخصات N تا رو گرفته و بعد با دو تا حلقه تودرتو بیشترین تکرار رو پیدا می کند!!!

جواب:

..::این برنامه به خواسته یكی از كاربران وبلاگ نوشته شده است::..

..::برای مشاهده كد به ادامه مطلب بروید::..

جواب:

#include <iostream.h>

#include <conio.h>

#include <string.h>

struct student

{

                char name[20];

                char family[30];

                char code[10];

};

void main()

{

                struct student st[50];

                int n,i,j,cnt,max,index;

                char temp[20],;

                cout<<"Tedad ra vared konid: ";

                cin>>n;

                //input data

                for(i=0;i<n;i++)

                {

                        cout<<"Enter name for student["<<(i+1)<<"]: ";

                        cin>>st[i].name;

                        cout<<"Enter family for student["<<(i+1)<<"]: ";

                        cin>>st[i].family;

                        cout<<"Enter code for student["<<(i+1)<<"]: ";

                        cin>>st[i].code;

                        cout<<"\n======================================\n";

                }

                //search

                for(i=0;i<n;i++)

                {

                                cnt=1;                   //reset counter

                                for(j=i+1;j<n;j++)

                                {

                                         if(strcmp(st[j].name," ")==0)

                                                    continue;

                                         strcpy(temp,st[i].name);              //asign

                                         if(strcmp(st[j].name,temp)==0)

                                          {

                                               strcpy(st[j].name," ");

                                                cnt++;

                                           }

                                }

                                //barasiii bishtarin tekrar

                                if(cnt>max)

                                {

                                       max=cnt;

                                       strcpy(max_name,st[i].name);

                                }

                }

                cout<<"\nName student: "<<max_name<<"\tTedade tekrar: "<<max;

                getch();

}