本题要求实现一个函数,可统计整型二维数组中所有末位是x(x是0-9)的元素的个数并输出这些元素。
要求主函数读入二维数组的行、列数,以及各个元素值。并读入x的值。
在子函数输出满足要求的元素(注意:英文逗号分隔),回主函数输出满足要求的元素个数。
函数接口定义:
int Count_Digit ( int a[ ][10 ], int m,int n,int x );
其中 a 和 x 都是用户传入的参数。 a是主函数传递的二维数组,m和n分别是二维数组的行、列元素个数。
x是指定的末位数字。函数输出所有末位是x(x是0-9)的元素,并返回末位是x的元素个数。
裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
#include <stdio.h>
int Count_Digit ( int a[ ][10 ], int m,int n,int x );
int main()
{ int a[10][10],i,j,num=0,m,n,x;
scanf("%d%d",&m,&n) ; //读入行列数目,并输入m行n列元素,m和n保证小于10
for(i=0; i<m; i++)
for(j=0; j<n; j++)
scanf("%d", &a[i][j]);
scanf("%d", &x); // 读入数组元素后,再读入指定的末位数字x
num=Count_Digit(a,m,n, x) ; // 调用函数求num
printf("num=%d", num) ;
return 0;
}
/* 请在这里填写答案 */
输入样例:
3 4
13 15 25 36
35 18 17 23
12 22 45 565
5
输出样例:
在这里给出相应的输出。例如:
they are 15,25,35,45,565,num=5
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
C (gcc)
1
上一题
实现Count_Digit方法,在方法中遍历循环判断是否满足末位是x
#include <stdio.h>
int Count_Digit ( int a[ ][10 ], int m,int n,int x );
int main()
{ int a[10][10],i,j,num=0,m,n,x;
scanf("%d%d",&m,&n) ; //读入行列数目,并输入m行n列元素,m和n保证小于10
for(i=0; i<m; i++)
for(j=0; j<n; j++)
scanf("%d", &a[i][j]);
scanf("%d", &x); // 读入数组元素后,再读入指定的末位数字x
num=Count_Digit(a,m,n, x) ; // 调用函数求num
printf("num=%d", num);
return 0;
}
int Count_Digit ( int a[ ][10 ], int m,int n,int x ){
int count=0;
printf("they are ");
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
if(a[i][j]%10==x){
printf("%d,", a[i][j]);
count++;
}
}
}
return count;
}
代码如下:
#include <stdio.h>
int Count_Digit(int a[][10], int m, int n, int x);
int main()
{
int a[10][10], i, j, num = 0, m, n, x;
scanf("%d%d", &m, &n); //读入行列数目,并输入m行n列元素,m和n保证小于10
for (i = 0; i < m; i++)
for (j = 0; j < n; j++)
scanf("%d", &a[i][j]);
scanf("%d", &x); // 读入数组元素后,再读入指定的末位数字x
num = Count_Digit(a, m, n, x); // 调用函数求num
printf("num=%d", num);
return 0;
}
int Count_Digit(int a[][10], int m, int n, int x)
{
int i, j;
int nmb = 0;
printf("they are ");
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
if (a[i][j] % 10 == x)
{
printf("%d,", a[i][j]);
nmb++;
}
}
}
return nmb;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!