P51 第18题 从键盘输入一个正整数n,判断其是否同时含有奇数字和偶数字

#include<stdio.h>
int main()
{
int a,b=0,c=0,i;
for(i=1;i<=5;i++)
{
printf("随机输入一个正整数:\n");
scanf("%d",&a);

do
{
if(a%2==0)
  b++;
 else
  c++;
 a=a/10;
}
while (a!=0);
if(b*c==0)
printf("没有同时含有\n");
else
printf("同时含有\n");
b=0;
c=0;
}
return 0;
}



为了在C语言中设计一个算法删除递增有序链表中值大于`minK`且小于`maxK`的所有元素,我们可以采用迭代的方式来遍历链表。这里是一个基本的步骤描述: 1. 定义结构体`ListNode`表示链表节点,包含数据`val`指向下一个节点的指针`next`。 ```c typedef struct ListNode { int val; struct ListNode* next; } ListNode; ``` 2. 创建一个函数`deleteInRange`,接受链表头节点`head`、最小值`minK`最大值`maxK`作为输入参数。 ```c ListNode* deleteInRange(ListNode* head, int minK, int maxK) { // 空链表或只有一个节点的情况 if (head == NULL || head->next == NULL) { return head; } ListNode* curr = head; ListNode* prev = NULL; // 遍历链表 while (curr != NULL) { // 如果当前节点不在范围内,则更新prevcurr,然后移动到下一个节点 if (curr->val < minK || curr->val > maxK) { if (prev != NULL) { prev->next = curr->next; } else { head = curr->next; // 更新头节点 } free(curr); // 释放已不需要的节点内存 curr = curr->next; } else { // 当前节点在范围内,将prev指向curr,继续遍历 prev = curr; curr = curr->next; } } return head; } ``` 接下来,我们需要编写一些测试用例来验证这个功能: ```c // 测试用例 int main() { // 构建链表示例 ListNode* list1 = createLinkedList({1, 3, 4, 6, 7, 9}); // 示例链表,递增顺序 // 删除范围内的节点 list1 = deleteInRange(list1, 2, 6); // 打印处理后的链表 printLinkedList(list1); // 输出:1, 3, 7, 9 // 清理内存 destroyLinkedList(list1); return 0; } // 辅助函数:创建链表、打印链表清理内存 ListNode* createLinkedList(int* arr) { // 创建链表并添加元素... } void printLinkedList(ListNode* head) { // 打印链表... } void destroyLinkedList(ListNode* head) { // 清除链表内存... } ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值