برنامه ای که با ساختار آرایه ها
مشخصات 100 دانشجو را گرفته .
الف ) نام دانشجو را گرفته و مشخصات کامل (نام و
نام خانوادگی و شماره دانشجویی و نمره 1و نمره 2 و نمره 3 و
معدل ) دانشجو را چاپ کند
ب) شماره دانشجویی را گرفته آن از
لیست حذف کند
ج) دانشجوهایی که معدلشان
بالای 18 است را نمایش دهند
د) نام دانشجویان را به ترتیب حروف
الفبا چاپ نماید
#include<stdio.h>
#include<conio.h>
#include<string.h>
const int en=20;
const int n1=100;
struct student{
char fname[en];
char lname[en];
long int stnum;
float nomre1,nomre2,nomre3;
};
int main()
{
int n=n1;
student st[n1],temp;
char str[20];
int i,j,e,m=-1,left=0,right=n-1,mid,in=0;
float avg;
long int fin;
for (int i=0; i<n; i++)
{
printf("fname%d=",i);
scanf("%s",st[i].fname);
printf("lname%d=",i);
scanf("%s",st[i].lname);
printf("stnum%d=",i);
scanf("%ld",&st[i].stnum);
printf("nomre=");
scanf("%f",&st[i].nomre1);
scanf("%f",&st[i].nomre2);
scanf("%f",&st[i].nomre3);
}
//
printf("enter fname");
scanf("%s",str);
for (i=0;i<n;i++)
{
int com=strcmp(str,st[i].fname);
if(com==0)
{
e=1;avg=0;
printf("name=%sn",st[i].fname);
printf("lname=%sn",st[i].lname);
printf("stnum=%ldn",st[i].stnum);
printf("nomre1=%fn",st[i].nomre1);
printf("nomre2=%fn",st[i].nomre2);
printf("nomre3=%fn",st[i].nomre3);
avg=(st[i].nomre1+st[i].nomre2+st[i].nomre3)/3;
printf("avg=%fn",avg);
}
}
if (e==0)
printf("not findn");
//
printf("enter stnum");
scanf("%ld",&fin);
for (i=0;i<n;i++)
for (j=i+1;j<n;j++)
if (st[i].stnum>st[j].stnum)
{
temp=st[i];
st[i]=st[j];
st[j]=temp;
}
for (i=1;i<n;i++)
{
mid=(left+right)/2;
if (st[mid].stnum == fin)
{
m=mid;
break;
}
else if ( st[mid].stnum < fin)
left=(mid)+1;
else if ( st[mid].stnum > fin)
right=(mid)-1;
}
if (m!=-1)
{
printf("okn");
for (i=m;i<n;i++)
st[i]=st[i+1];
n--;
}
else
printf("not findn");
//
printf("avg>=18n");
for(i=0 ; i<n ; i++)
{
avg=(st[i].nomre1+st[i].nomre2+st[i].nomre3)/3;
if (avg>=18)
{
in=1;
printf("name=%sn",st[i].fname);
printf("lname=%sn",st[i].lname);
printf("stnum=%ldn",st[i].stnum);
printf("nomre1=%fn",st[i].nomre1);
printf("nomre2=%fn",st[i].nomre2);
printf("nomre3=%fn",st[i].nomre3);
printf("avg=%fn",avg
این نظر توسط a.r در تاریخ 1348/10/11 و 15:19 دقیقه ارسال شده است | |||
سلام من برا پروژم مونده بودم خيلي ممنون بدردم خورد ....خير ازجوونيتون ببينيد ايشالله |