//输入小明所在组n个员工的工资,求他们的平均工资。要求average函数的功能是返回n个员工的平均工资,主函数的功能是输入员工数及相应员工的工资,员工的工资保存在数组中,然后调用average函数,输出他们的平均工资(假设员工的人数不会超过20)。n个员工平均工资程序运行结果如图所示(工资可以任意给定)
float average(int c, int n)
{
float a;
a=c/n;
return a;
}
int main()
{
int n,j;
float a;
int c=0;
printf("请输入员工数:\n");
scanf("%d",&n);
int salary[n];
for(j=0;j<n;j++)
{
printf("请输入相应员工的工资:\n");
scanf("%d",&salary[j]);//[]中的元素必须是j,不能是n,因为n是一个确定的值,获取的salary需要一个变量来存储
c+=salary[j];
}
a=average(c,n);
printf("员工的平均工资:%f\n",a);
}
strcpy与strmpy 使用位置具体案例
int main()
{
char name1[10],name2[10],name3[10];
char tt[20];
printf("请输入姓名:\n");
gets(name1);gets(name2);gets(name3);
if(strcmp(name1,name2)<0)
{ strcpy(tt,name1);strcpy(name1,name2);strcpy(name2,tt);}
if(strcmp(name1,name3)<0)
{ strcpy(tt,name1);strcpy(name1,name3);strcpy(name3,tt);}
if(strcmp(name2,name3)<0)
{ strcpy(tt,name2);strcpy(name2,name3);strcpy(name3,tt);}
printf("请输出姓名:\n");
puts(name1);
puts(name2);
puts(name3);
}
在二维数组中,
“%s”,name[i]——表示数组名
“%s”,name[i][j]——此时的name表示元素
“%c”,name[i]——表示一维数组的单个字符
“%c”,name[i][j]——表示二维数组的字符
在有两个函数调用时可以用指针的形式或者直接用传参的形式
//有问题,不用传参,不用指针
void average(float b[1])
{
int i;
float sum = 0;
for (i = 0; i < 3; i++)
{
sum = sum + b[i];
printf("sum=%d\n", sum);
b[0] = sum / 3.0;
}
}
int main()
{
int i;
float a[3], avg[1];
printf("请输入三个学生的成绩\n");
for (i = 0; i < 3; i++)
scanf("%f", &a[i]);
average(avg);
printf("平均分为:%f\n", avg[0]);
return 0;
}
//传参不用指针
void average(float b[3]) {
int i;
float sum = 0;
for (i = 0; i < 3; i++)
sum += b[i];
b[0] = sum / 3.0;
}
int main() {
int i;
float a[3];
printf("请输入三个学生的成绩:\n");
for (i = 0; i < 3; i++)
scanf("%f", &a[i]);
average(a);
printf("三个学生的平均分是:%f\n", a[0]);
return 0;
}
//用指针
void average(float b[3], float *avg) {
int i;
float sum = 0;
for (i = 0; i < 3; i++)
sum += b[i];
*avg = sum / 3.0;
}
int main() {
int i;
float a[3], avg;
printf("请输入三个学生的成绩:\n");
for (i = 0; i < 3; i++)
scanf("%f", &a[i]);
average(a, &avg);
printf("三个学生的平均分是:%f\n", avg);
return 0;
}