#include
#include
void main()
{
int a,b;
float c;
printf("请输入两个100以内的整数: ");
scanf_s("%d%d\n", &a, &b);
printf("a*a+b*b=");
c =( a^2)+(b^2);
if (a * a + b * b> 100)
{
printf("%d\n", c);
printf("此时百位上的数字:");
printf("%d\n", (a * a + b * b) / 100 % 10);
}
else
{
printf("%d\n", (a * a + b * b));
printf("此时个位上的数字:");
printf("%d\n", ((a ^ 2) + (b ^ 2))% 10);
}
}
c =( a^2)+(b^2);
不能这么写,^是xor不是乘方
可以写
c = pow(a, 2) + pow(b, 2);
也可以干脆写
c = a * a + b * b;
不知道你这个问题是否已经解决, 如果还没有解决的话:传递性在关系矩阵中的特点并不明显,故用另一个思路:关系R是传递的,当且仅当R∘R⊆R ,通俗来讲就是若R对应的关系矩阵中某一位置的元素为0,则在R∘R对应的关系矩阵的位置上的元素必须为0。
题目描述
给定有限集合上二元关系的关系矩阵,判断该关系是否具有传递性?
源代码
#include<stdio.h>
#define N 100
int mult(int a[N][N],int b[N][N],int n,int c[N][N])
{
int i,j,k;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
c[i][j]=0;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
for(k=0;k<n;k++)
{
c[i][j]+=a[i][k]*b[k][j];
}
}
}
}
int main()
{
int n,i,j,a[N][N],b[N][N]={0},c[100][100]={0};
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
b[i][j]=a[i][j];
}
}
mult(a,b,n,c);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(a[i][j]==0)
{
if(c[i][j]!=0)
{
printf("该关系不具有传递性!\n");
return 0;
}
}
}
}
printf("该关系具有传递性!\n");
return 0;
}