第1个回答 2013-03-15
1、
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int sum_score=0;
int avg_score=0;
int *score = NULL;
int *bellow = NULL;
int num_bel=0;
int func(int number)
{
if(score[number] < avg_score)
{
bellow[num_bel++]=score[number];
return number;
}
return -1;
}
int main(void)
{
int num_stu=0;
int i=0;
printf("please input number of student:\n");
scanf("%d",&num_stu);
score =(int *)malloc(num_stu*sizeof(int));
bellow = (int *)malloc(num_stu*sizeof(int));
if(score != NULL && bellow!=NULL)
{
memset(score,0,num_stu*sizeof(int));
memset(bellow,0,num_stu*sizeof(int));
}
for(;i<num_stu;i++)
{
printf("no.%d score is:",i);
scanf("%d",score+i);
sum_score+=*(score+i);
}
avg_score = sum_score/num_stu;
for(i=0;i<num_stu;i++)
{
func(i);
}
if(num_bel!=0)
{
for(i=0;i<num_bel;i++)
{
printf("%d ",bellow[i]);
}
printf("\n");
}
free(bellow);
free(score);
return 0;
}
2、
#include<stdio.h>
int num=0;
int data[10]={21,14,7,49,28,21,9,35,6,7};
int pdata[10]={0};
int x_value=0;
void fun(int x,int pp[],int *n)
{
int i=0;
int j=0;
int tmp=0;
for(;i<10;i++)
{
if(data[i]%2!=0 && data[i]%x_value==0)
{
pdata[(*n)++]=data[i];
}
}
for(i=0;i<num;i++)
{
for(j=i+1;j<num;j++)
{
if(pdata[i]>pdata[j])
{
tmp=pdata[i];
pdata[i]=pdata[j];
pdata[j]=tmp;
}
}
}
}
int main(void)
{
int i=0;
printf("please input the value of X:");
scanf("%d",&x_value);
fun(x_value,pdata,&num);
for(;i<num;i++)
{
printf("%d ",pdata[i]);
}
printf("\n");
return 0;
}
3、
#include<stdio.h>
struct student{
int stu_num;
int score;
};
struct student high[6]={0};
int fun(struct student *p)
{
int max=0;
int i=0;
int num=0;
for(;i<6;i++)
{
if(p[i].score > max)
{
max = p[i].score;
}
}
for(i=0;i<6;i++)
{
if(p[i].score == max)
{
high[num++]=p[i];
}
}
return num;
}
int main(void)
{
int high_num=0;
int i=0;
struct student stu[6]=
{
{2001,99},
{2002,94},
{2003,92},
{2004,99},
{2005,98},
{2006,99},
};
high_num = fun(stu);
printf("same highest number is:%d\n",high_num);
for(;i<high_num;i++)
{
printf("%d %d \n",high[i].stu_num,high[i].score);
}
return 0;
}