воскресенье, 06 апреля 2008
читать дальше№1
напистаь программу, которая принимает массив из 10 чисел. нужно найти максимальное и минимальное значение и распечатать на каких местах находится максимальное и минимальное значения.
#include<iostream.h>
void main(void)
{
int ar[10],max,im,min,mi;
scanf("%d",ar[0]);
max=ar[0];
min=ar[0];
for(int i=1;i<10;i++)
{
scanf("%d",&ar[i]);
if(ar[i]>max)
{
max=ar[i];
im=i;
}
else if(ar[i]<min)
{
min=ar[i];
mi=i;
}
}
printf("%d\t%d\n\n",im,mi);
}
№2
Написать программу, которая принимает одномерный массив и число а. Программа ищет в массиве это число и распечатывает место, где оно находится.
#include<iostream.h>
void f(int ar[10],a)
{
for(int i=0;i<10;i++)if(ar[i]==a)
{
printf("%d\n\n",i);
break;
}
}
vod main(void)
{
int ar[10],a;
for(int i=0;i<10;i++)scanf("%d",&ar[i]);
scnaf("%d",&a);
f(ar,a);
}
Поисковичок
#include<iostream.h>
int f(int ar[10],a)
{
int l=0,r=9,m=5;
while(r>=l)
{
m=(l+r)/2;
if(a<ar[m])r=m-1;
else if(a>ar[m])l=m+1;
else return m;
}
return -1;
}
void main(void)
{
int ar[10],a;
for(int i=0;i<10;i++)scanf("%d",&ar[i]);
scnaf("%d",&a);
if(f(ar,a)==-1)printf("fignya\n\n");
else printf("%d\n\n",f(ar,a);
}
Информация, которая находится в одной структуре может быть присвоена другой структуре того же типа при помощи единственного оператора присваивания. Нет необходимости присваивать значение каждого члена в отдельности.
#include<stdio.h>
int main(void)
{
struct{
int a;
int b;
}
x,y;
x.a=10;
y=x;
printf("%d",y.a);
return 0;
}
Массивы структур
Структуры часто образуют массивы. Чтобы объявить массив структур,вначале необходимо определить структуру, а затем объявить переменную массива того же типа.
void main(void)
{
struct addt
{
char name[20];
char city[30];
}
addr_info[20];
}
||
void main(void)
{
struct addr addr_info[20];
printf("%s",addr_info[2].name);
}
Определить структуру, которая состоит из имени студента и оценки. Программа строит массив структур на пять учеников и считает среднее арифметическое их оценок.
#include<stdio.h>
struct students{
char name[20];
int mark;
};
void main(void)
{
struct students group[5];
float s=0;
printf("Vvedite imena\n");
for(int i=0;i<5;i++)gets(group[i].name);
printf("Vvedite ocenki\n");
for(i=0;i<5;i++)scanf("%d",&group[i].mark);
for(i=0;i<5;i++)s+=group[i].mark;
printf("\n\n%f\n\n",s*1.0/5);
}
#include<stdlib.h>
struct addr{
char name[30];
char street[40];
char city[20];
char state[3];
unsigned long int zip;
}addr_list[25];
int menu_select(void){
char s[80];
int c;
printf("1.enter name\n");
printf("2.del name\n");
printf("3.print list\n");
printf("4.exit\n");
do{
printf("\n enter number:");
gets(s);
c=atoi(s);
}
while(c<0||c>4);
return c;
}
int free_place()
{
for(int i=0;i<25;i++)
if(addr_list[i].name[0]=='\0')
return i;
return -1;
}
void enter()
{
int i;
i=free_place();
if(i!=-1){
printf("enter name:\n");
gets(addr_list[i].name);
printf("\n");
printf("enter street:\n");
gets(addr_list[i].street);
printf("\n");
printf("enter city:\n");
gets(addr_list[i].city);
printf("\n");
printf("enter state:\n");
gets(addr_list[i].state);
printf("\n");
}
else printf("list is full");
}
void delet()
{
int i;// napisat' sluchai togo 4to vvoditsya bred
printf("enter index:\n");
scanf("%d",&i);
addr_list[i].name[0]='\0';
}
void list(){
int i;
for(i=0;i<25;i++){
if(addr_list[i].name[0]=='\0'){
continue;
}
else{
printf("\n");
printf("#%d:\n",i);
printf("name:");
puts(addr_list[i].name);
printf("\n");
printf("street:");
puts(addr_list[i].street);
printf("\n");
printf("city:");
puts(addr_list[i].city);
printf("\n");
printf("state:");
puts(addr_list[i].state);
printf("\n");
}
}
}
void main(void){
int i;
for(i=0;i<25;i++){
addr_list[i].name[0]='\0';
}
for(;
switch(menu_select())
{
case 1:
enter();
break;
case 2:
delet();
break;
case 3:
list();
break;
case 4:
exit(0);
break;
}}
}
struct students
{
char ID[10];
char name[20];
};
struct marks
{
char ID[10];
int mark;
};
void f1(struct students st[], struct marks mk[]);
void main(void)
{
struct students st[2]={{"123456789","Vas9"},{"987654321","Masha"}};
struct marks mk[4]={{"123456789",100},{"123456789",55},{"987654321",79},{"987654321",59}};
f1(st,mk);
}
void f1(struct students st[], struct marks mk[])
{
for(int i=0;i<2;i++)for(int j=0;j<4;j++)if((strcmp(st[i].ID,mk[j].ID))==0)printf("%s %d\n",st[i].name,mk[j].mark);
}