4、编程实现以下功能:用C语言编程,在主函数中,由键盘输入10个互不相同的整数存放在一维数组a

中,从键盘上输入数x,若x属于a数组,则将其从a中删除。在主函数中,通过调用以下几个自定义函数分别完成x的查找和删除及删除x前后显示a的元素值。自定义函数的首部及功能如下:
⑴ void myout(int arr[],int n):该函数用于输出含有n个整数的数组;
⑵ int delx(int arr[],int n,int x):该函数用于删除n个数组元素中的值等于x的元素,并返回删除后数组元素的个数。

#include <stdio.h>

void myout(int arr[],int n)
{
int i;
printf("输入数组:\n");
for (i = 0; i < n; i++)
scanf("%d", &arr[i]);
}
int delx(int arr[],int n,int x)
{
int i, j;
for (i = 0; i < n; i++)
{
if (arr[i] == x) {
for (j = i; j < n; j++)
arr[j] = arr[j+1];
n--;
i--;
}
}
return n;
}

int main()
{
int arr[100], n, numbers, x;
printf("输入数组的大小(不大于100): ");
scanf("%d", &n);
myout(arr, n);
printf("输入要删除的数据: ");
scanf("%d", &x);
numbers = delx(arr, n, x);
printf("删除后数组的元素个数为%d.\n", numbers);

return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-02-27
*计算每个学生的平均分*/
int i,j,s;
for (i=0;i<4;i++){
s=0;
for (j=0;j<5;j++) s+=a[i][j];
s/=5;
a[i][5]=s;
}
}

void avg1(int a[5][6]){/*计算每门课程的平均分*/
int i,j,s;
for (j=0;i<5;j++){
s=0;
for (i=0;i<4;i++) s+=a[i][j];
s/=4;
a[4][j]=s;
}
}

main(){
int score[5][6],i,j;
for (i=0;i<4;i++){
printf("输入%d个学生的五门课程成绩\n",i+1);
for (j=0;j<5;j++) scanf("%d",&score[i][j]);
}
avg1(score);
for (i=0;i<4;i++) printf("第%d个学生的平均成绩是%d\n",i+1,score[i][5]);
avg2(score);
for (j=0;i<5;j++) printf("第%d门课程的平均成绩是%d\n",j+1,score[4][j]);
}
第2个回答  2011-03-05
*计算每个学生的平均分*/
int i,j,s;
for (i=0;i<4;i++){
s=0;
for (j=0;j<5;j++) s+=a[i][j];
s/=5;
a[i][5]=s;
}
}

void avg1(int a[5][6]){/*计算每门课程的平均分*/
int i,j,s;
for (j=0;i<5;j++){
s=0;
for (i=0;i<4;i++) s+=a[i][j];
s/=4;
a[4][j]=s;
}
}

main(){
int score[5][6],i,j;
for (i=0;i<4;i++){
printf("输入%d个学生的五门课程成绩\n",i+1);
for (j=0;j<5;j++) scanf("%d",&score[i][j]);
}
avg1(score);
for (i=0;i<4;i++) printf("第%d个学生的平均成绩是%d\n",i+1,score[i][5]);
avg2(score);
for (j=0;i<5;j++) printf("第%d门课程的平均成绩是%d\n",j+1,score[4][j]);
}
相似回答