你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据。程序输出读到的数据中的奇数和偶数的个数。...

#include<stdio.h>

int main()
{
    int n;
    int oushu=0;
    int jishu=0;
    while(scanf("%d",&n))
    {
        if (n==-1) break;
        if(n%2==0)
        {
            oushu++;
        }
        else
        {
            jishu++;
        }
    } 
    printf("%d %d\n",jishu,oushu);
    return 0;
}

 

转载于:https://www.cnblogs.com/2228212230qq/p/7979449.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来回答您的问题。 首先,让我们定义一下这些关系: - 自反关系:若aRa成立,则称该关系是自反的。 - 对称关系:若aRb成立,则bRa也成立,则称该关系是对称的。 - 传递关系:若aRb成立,bRc也成立,则aRc也成立,则称该关系是传递的。 - 反自反关系:若aRa不成立,则称该关系是反自反的。 - 反对称关系:若aRb成立,bRa也成立,则a和b相等,则称该关系是反对称的。 现在,我们来看看如何用C语言判断一个关系是否满足以上条件。 首先,我们需要从键盘输入一个关系的关系矩阵。假设我们将这个矩阵保存在一个二维数组,名为matrix。 然后,我们分别判断该关系是否是自反的、对称的、传递的、反自反的、反对称的。 - 自反关系:对于矩阵的每个元素matrix[i][i],如果它为1,则说明该关系是自反的。 - 对称关系:对于矩阵的每个元素matrix[i][j],如果它为1,则必须满足matrix[j][i]也为1,否则该关系不是对称的。 - 传递关系:对于矩阵的每个元素matrix[i][j],如果它为1,我们需要遍历矩阵的第j行,找到所有为1的元素matrix[j][k],然后检查matrix[i][k]是否为1。如果对于所有的i、j、k,都满足这个条件,那么该关系就是传递的。 - 反自反关系:对于矩阵的每个元素matrix[i][i],如果它为0,则说明该关系是反自反的。 - 反对称关系:对于矩阵的每个元素matrix[i][j],如果它为1,我们需要检查matrix[j][i]是否为1。如果matrix[j][i]也为1,并且i不等于j,那么该关系就不是反对称的。 综上所述,我们可以编写以下代码来判断一个关系是否满足以上条件: ```c #include <stdio.h> #define ROWS 3 #define COLS 3 int main() { int matrix[ROWS][COLS]; int i, j, k; // 循环计数器 // 从键盘输入矩阵 printf("请输入一个%d行%d列的关系矩阵:\n", ROWS, COLS); for (i = 0; i < ROWS; i++) { for (j = 0; j < COLS; j++) { scanf("%d", &matrix[i][j]); } } // 判断是否是自反的 int is_reflexive = 1; for (i = 0; i < ROWS; i++) { if (matrix[i][i] == 0) { is_reflexive = 0; break; } } if (is_reflexive) { printf("该关系是自反的。\n"); } else { printf("该关系不是自反的。\n"); } // 判断是否是对称的 int is_symmetric = 1; for (i = 0; i < ROWS; i++) { for (j = 0; j < COLS; j++) { if (matrix[i][j] == 1 && matrix[j][i] != 1) { is_symmetric = 0; break; } } } if (is_symmetric) { printf("该关系是对称的。\n"); } else { printf("该关系不是对称的。\n"); } // 判断是否是传递的 int is_transitive = 1; for (i = 0; i < ROWS; i++) { for (j = 0; j < COLS; j++) { if (matrix[i][j] == 1) { for (k = 0; k < COLS; k++) { if (matrix[j][k] == 1 && matrix[i][k] != 1) { is_transitive = 0; break; } } } } } if (is_transitive) { printf("该关系是传递的。\n"); } else { printf("该关系不是传递的。\n"); } // 判断是否是反自反的 int is_antireflexive = 1; for (i = 0; i < ROWS; i++) { if (matrix[i][i] == 1) { is_antireflexive = 0; break; } } if (is_antireflexive) { printf("该关系是反自反的。\n"); } else { printf("该关系不是反自反的。\n"); } // 判断是否是反对称的 int is_antisymmetric = 1; for (i = 0; i < ROWS; i++) { for (j = 0; j < COLS; j++) { if (matrix[i][j] == 1 && matrix[j][i] == 1 && i != j) { is_antisymmetric = 0; break; } } } if (is_antisymmetric) { printf("该关系是反对称的。\n"); } else { printf("该关系不是反对称的。\n"); } return 0; } ``` 当然,这只是一个简单的示例代码,您可以根据需要对其进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值