、程序定义了N×N的二维数组,并在主函数中自动赋值。编写函数fun(int a[][N]),函数的功能是:使数组左下半三角元素中的值全部置成0。
例如:a数组中的值为
|1 9 7|
a= |2 3 8|,则返回主程序后a数组中的值应为
|4 5 6|
|0 9 7|
|0 0 8|
|0 0 0|
编写主函数,可以正确调用fun函数。
参考学习:
#include <stdio.h>
#define N 3
void fun(int a[][N]){
for(int i=1;i<N;++i){
for(int j=0;j<i;++j){
a[i][j]=0;
}
}
}
int main(){
int a[N][N]={{1,9,7},
{2,3,8},
{4,5,6}};
printf("Before call function fun(a):\n");
for(int i=0;i<N;++i){
for(int j=0;j<N;++j){
printf("%d ",a[i][j]);
}
printf("\n");
}
fun(a);
printf("After call function fun(a):\n");
for(int i=0;i<N;++i){
for(int j=0;j<N;++j){
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}
双循环就好了啊,下半三角的特点,是横坐标小于等于纵坐标
void fun(int a[][N])
{
for(int i=0;i<N;i++)
for(int j=0;j<=i;j++)
a[i][j] = 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话:#include <stdio.h>
#define N 3
void fun(int a[][N]) {
for(int i = 1; i < N; i++) {
for(int j = 0; j < i; j++) {
a[i][j] = 0;
}
}
}
int main() {
int a[N][N] = {{2, 3, 8}, {1, 6, 5}, {4, 9, 7}};
fun(a);
for(int i = 0; i < N; i++) {
for(int j = 0; j < N; j++) {
printf("%d ", a[i][j]);
}
printf("\n");
}
return 0;
}