#include<stdio.h>
#define N 3
int mlt (int i,int j,int a[N][N],int b[N][N] )
{
int k,c[N][N]={0,0,0,0,0,0,0,0,0};
for(k=0;k<N;k++)
c[i][j]+=a[i][k]*b[k][j];
return (c[i][j]);
}
void main()
{
int i, j, x[N][N], y[N][N], z[N][N], d[N][N];
for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%4d",&x[i][j]);
for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%4d",&y[i][j]);
for(i=0;i<N;i++)
for(j=0;j<N;j++)
z[i][j]=mlt (i,j,x,y);
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
{
printf("%5d ", z[i][j]);
}
printf("\n");
}
C语言,请问这个结果出来为啥是特别大的负数QAQ
你这种情况是溢出了,你可以用double或者long double试一下。看一下计算机组成原理你就直到为什么会溢出了。
为什么总输出一个很大的负数 C语言
原因:scanf用法不对,分析如下 1,代码中有一点错误 scanf ("i=%1f",&i);原型是int scanf(constchar*format,...);format为格式说明字符串,这个跟printf里面的不同,不能有多余杂质 故正确用法是scanf ("%1f",&i);特别注意的地方是,浮点型不能指点位数 进一步修改为scanf ("%f",&i);到...
C语言运行结果的时候为什么会出现负数
整形的范围是 -32768~32767;必然是溢出了。
c语言输入三个小数后输出好大的负数
else printf("%.1f %.1f %.1f\\n", b, a, c);}else if (c > b) printf("%.1f %.1f %.1f\\n"
C语言 编写 求三个数的最大值 为什么输出一个很长的负数?
scanf要放在主调函数d=max(a,b,c)前面,要不然先执行d=max(a,b,c)时,此时a,b,c还没有赋值呢!
C语言 编写 求三个数的最大值 为什么输出一个很长的负数?
scanf要放在主调函数d=max(a,b,c)前面,要不然先执行d=max(a,b,c)时,此时a,b,c还没有赋值呢!
【C语言】有没有大佬知道这个程序为什么会输出一个负数?
程序会输出负数的原因是,在这个程序中你没有对每次运算的结果进行检查,因此当乘积超出了long类型的最大值时,就会产生溢出,导致结果为负数。为了避免这个问题,你可以在每次运算后检查结果是否已经超出了long类型的范围,并在必要时退出循环。可以这样改:include<stdio.h> main(){ long i;i=chengji(...
C语言fopen打开一个文件后,返回的值是个很大的负数,不知道是什么错误...
fopen的返回值不是负数。。而是一个FILE指针。你如果硬要把指针转成整数,是有可能看到个负数,不过不代表任何意义。只要返回的不是0,就说明fopen函数调用成功了。如果造成死机,应该是你其他的代码有问题。
一道C语言题,为什么输出的结果为负数?
你的主要原因是变量w没有初始化,是内存中的遗留值,导致最后输出的结果中全部学生的平均值为2000多的一个负数。修改后源码软下:include <stdio.h>#include <stdlib.h>#define input scanfstruct student{ char num[10]; char name[10]; int score[3]; int total; float avr;}...
c语言 结果 出现巨大的负数
程序没有问题,你这个执行结果有点莫名其妙 给你个建议,mlt函数里c没必要定义为数组,就一个整型变量就够了:int mlt (int i,int j,int a[N][N],int b[N][N] ){ int k,c=0;for(k=0;k<N;k++)c += a[i][k]*b[k][j];return c;} ...