
c语言函数的编程、、很简单的!!
把a[n][n]二维数组对角线元素置1,并求其余元素之和,要求用函数完成。
(本题令n=4)
要求:
主函数中完成:
1) 输入a数组元素值。
2) 输出对角线置1后a数组。
3) 输出其余元素之和。
被调用函数中完成:
1) 对角线元素(主、副两条对角线)置1。
2) 求其余元素之和后返回其值。
注意:要给出至少两次的运行的输入输出结果。
【评分标准】
实验报告内容中写明:
1. 题目:10分
2. 算法描述:20分
3. 源程序:50分
主函数30分
被调用函数20分
4. 运行结果:20。注意,每次运行结果10分。 展开
程序比较简单;下面的图片是我运行的结果,你可以参考一下!
#include <stdio.h>
int a[100][100];
void fun(int n);//将对角线置1函数
int count(int n);//计算除对角线外的元素的和
int main()
{
int n, i, j, sum;
printf("请输入该矩阵的维数:");
scanf("%d", &n);//数组的维数
printf("请输入矩阵中的值,按行输入:\n");
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
scanf("%d", &a[i][j]);
}
}
fun(n); //调用两个函数
sum=count(n); //输出改动后的矩阵
printf("改动后的矩阵为:\n");
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
printf("\n除对角线外其余的元素的和为:%d\n", sum);
}
void fun(int n)//n为数组的维数,下同
{
int i;
for(i=0; i<n; i++)
a[i][i]=1;
}
int count(int n)
{
int i, j, sum=0;
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
if(i!=j) sum += a[i][j];
}
}
return sum;
}
int a[4][4];
int function1();
void main()
{
int sum;
for (int i=0;i<4;i++)
for (int j=0;j<4;j++)
{
scanf("%d",&a[i][j]);
}
sum=function1();
for (int i=0;i<4;i++)
{
for (int j=0;j<4;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
printf("%d",sum);
}
int function1()
{
int sum=0;
for (int i=0;i<4;i++)
for (int j=0;j<4;j++)
{
if (i==j ||i+j==3)
{
a[i][j]=1;
}
else
sum+=a[i][j];
}
return sum;
}