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

1.)第一行与第二行有1个负数,第三行与第四行没有负数,第五行有五个负数,那么最后显示器上给我们显示出{11005}的数组。就是每行有几个负数就输出是几个,而没有就输出0... 1.)第一行与第二行有1个负数,第三行与第四行没有负数,第五行有五个负数,那么最后显示器上给我们显示出{1 1 0 0 5}的数组。就是每行有几个负数就输出是几个,而没有就输出0。用rand %更好。
2.)还有就是5行5列中第一列到第三列都有负数,第四列和第五列没有负数(都是整数)。那显示器上输出:第一个整数列,也就是这里的第四列。第一个整数列是:4
辛苦了!谢谢!
展开
 我来答
xoaxa
2014-04-25 · TA获得超过8608个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3431万
展开全部

/*

  16  -78   11   59  -72

 -22   55   53   27  -33

  84  -83  -58   38   31

 -24  -50   12  -75  -49

  28   50   38  -54   26

各行负数个数:2 2 2 4 1

各列负数个数:2 3 1 2 3

Press any key to continue

*/

#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;
}
追问
如果1行里有几个负数都输出1,而没有出现负数的哪一行输出0.这个怎么弄?...能不能把我扣扣号加一下26629718,真是谢谢你的回答。
追答
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] = 1; // 只需修改本行
}
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;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式