永发信息网

编写一个数组,5行5列 C语言

答案:1  悬赏:70  手机版
解决时间 2021-01-02 13:48
  • 提问者网友:半生酒醒
  • 2021-01-01 13:42
1.)第一行与第二行有1个负数,第三行与第四行没有负数,第五行有五个负数,那么最后显示器上给我们显示出{1 1 0 0 5}的数组。就是每行有几个负数就输出是几个,而没有就输出0。用rand %更好。
2.)还有就是5行5列中第一列到第三列都有负数,第四列和第五列没有负数(都是整数)。那显示器上输出:第一个整数列,也就是这里的第四列。第一个整数列是:4
辛苦了!谢谢!
最佳答案
  • 五星知识达人网友:傲气稳了全场
  • 2021-01-01 13:49

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int const M = 5;
int const N = 5;

void Show(int a[][N], int m) {
int i,j;
for(i = 0; i < m; ++i) {
for(j = 0; j < N; ++j)
printf("%4d ",a[i][j]);
printf("\n");
}
}

void GetMat(int a[][N], int m) {
int i,j,sign;
for(i = 0; i < m; ++i) {
for(j = 0; j < N; ++j) {
sign = rand()%2;
if(sign == 0) sign = -1;
a[i][j] = sign*(rand()%90 + 10);
}
}
}

int main() {
int i,j,a[M][N],row[M],colm[N];
srand(time(0));
GetMat(a,M);
for(i = 0; i < M; ++i) { // 统计各行负数的个数
row[i] = 0;
for(j = 0; j < N; ++j)
if(a[i][j] < 0) ++row[i];
}
for(i = 0; i < N; ++i) { // 统计各列负数个数
colm[i] = 0;
for(j = 0; j < M; ++j)
if(a[j][i] < 0) ++colm[i];
}
Show(a,M);
printf("各行负数个数:");
for(i = 0; i < M; ++i)
printf("%d ",row[i]);
printf("\n");
printf("各列负数个数:");
for(i = 0; i < N; ++i)
printf("%d ",colm[i]);
printf("\n");
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯