c语言由键盘上输入两个不相等的整数,请判断是否相邻,是输出“TRUE”,否则输出“FALSE”
时间: 2024-09-28 10:12:21 浏览: 93
在C语言中,你可以通过接收用户输入的两个整数,然后计算它们之间的差值来判断这两个数是否相邻。以下是一个简单的示例程序:
```c
#include <stdio.h>
int checkAdjacent(int num1, int num2) {
int difference = abs(num2 - num1); // 计算绝对差值
if (difference == 1) {
return 1; // 相邻,返回TRUE
} else {
return 0; // 不相邻,返回FALSE
}
}
int main() {
int num1, num2;
printf("请输入两个不相等的整数:");
scanf("%d %d", &num1, &num2);
if (checkAdjacent(num1, num2)) {
printf("TRUE\n");
} else {
printf("FALSE\n");
}
return 0;
}
```
在这个程序中,`checkAdjacent` 函数接收两个整数作为参数,计算它们的差值(使用 `abs` 函数获取绝对值),如果差值为1,则说明这两个数是相邻的,返回1;否则返回0。
相关问题
c语言由键盘上输入三个不相等的整数,请判断是否相邻,是输出“TRUE”,否则输出“FALSE”。
在C语言中,你可以通过以下步骤来实现这个功能:
1. 首先,提示用户从键盘输入三个整数,并存储在变量中。
2. 接下来,对这三个数字进行比较。如果它们按顺序排列并且中间没有其他元素,则它们是相邻的。
3. 你可以使用嵌套循环或直接比较的方式来检查这三点。例如,可以遍历数组,然后检查每个数与其前后邻居之间的差值是否为1。
4. 如果所有的相邻比较都满足条件(差值为1),则输出 "TRUE";否则,输出 "FALSE"。
下面是一个简单的示例程序:
```c
#include <stdio.h>
int main() {
int num1, num2, num3;
printf("请输入三个不相等的整数:");
scanf("%d%d%d", &num1, &num2, &num3);
// 检查相邻
if (num1 < num2 && num2 < num3) {
if (num2 - num1 == 1 && num3 - num2 == 1) {
printf("TRUE\n");
} else {
printf("FALSE\n");
}
} else {
printf("FALSE\n"); // 可能有多种情况,这里仅考虑了升序相邻的情况
}
return 0;
}
```
在本题中,读入一个无向图的邻接矩阵(即数组表示),建立无向图并按照以上描述中的算法遍历所有顶点,输出遍历顶点的顺序。 Input 输入的第一行包含一个正整数n,表示图中共有n个顶点。其中n不超过50。 以后的n行中每行有n个用空格隔开的整数0或1,对于第i行的第j个0或1,1表示第i个顶点和第j个顶点有直接连接,0表示没有直接连接。当i和j相等的时候,保证对应的整数为0。 输入保证邻接矩阵为对称矩阵,即输入的图一定是无向图。 Output 只有一行,包含n个整数,表示按照题目描述中的深度优先遍历算法遍历整个图的访问顶点顺序。每个整数后输出一个空格,并请注意行尾输出换行。 Sample Input 4 0 1 0 1 1 0 0 0 0 0 0 1 1 0 1 0Sample Output 0 1 3 2 上述问题用C语言和数据结构如何写代码
以下是深度优先遍历的伪代码:
void dfs(int v) {
visited[v] = true; // 标记当前顶点已访问
printf("%d ", v); // 输出当前顶点
for (int i = 0; i < n; i++) {
if (adjMatrix[v][i] && !visited[i]) { // 如果当前顶点与 i 相邻且 i 未被访问过
dfs(i); // 递归访问 i
}
}
}
其中,visited 数组记录顶点是否被访问过,adjMatrix 是邻接矩阵,n 是顶点个数。
完整的C语言代码如下:
阅读全文