用c语言1奇偶个数(5分) 题目内容: 你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据。程序输出读到的数据中的奇数和偶数的个数。 输入格式: 一系列正整数,整数的范围是(0,100000)。如果输入-1则表示输入结束。 输出格式: 两个整数,第一个整数表示读入数据中的奇数的个数,第二个整数表示读入数据中的偶数的个数。两个整数之间以空格分隔。 输入样例: 9 3 4 2 5 7 -1 输出样例: 4 2
时间: 2023-05-29 22:01:09 浏览: 45
#include <stdio.h>
int main()
{
int n, odd = 0, even = 0;
scanf("%d", &n);
while (n != -1)
{
if (n % 2 == 0)
even++;
else
odd++;
scanf("%d", &n);
}
printf("%d %d", odd, even);
return 0;
}
相关问题
用C语言实现题目内容:输入若干个正整数(输入-1为结束标志),要求按输入数据的逆序建立单链表并输出。
以下是使用C语言实现题目内容的代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构体
typedef struct node {
int data; // 数据域
struct node *next; // 指针域
} Node, *LinkList;
// 创建新节点
Node *createNode(int data) {
Node *newNode = (Node *)malloc(sizeof(Node));
newNode->data = data;
newNode->next = NULL;
return newNode;
}
// 在链表头部插入节点
void insertNode(LinkList *head, Node *newNode) {
newNode->next = *head;
*head = newNode;
}
// 逆序建立单链表
LinkList createList() {
LinkList head = NULL;
int data = 0;
printf("请输入若干个正整数,以-1结束:\n");
scanf("%d", &data);
while (data != -1) {
Node *newNode = createNode(data);
insertNode(&head, newNode);
scanf("%d", &data);
}
return head;
}
// 输出单链表
void printList(LinkList head) {
printf("逆序输出单链表:\n");
while (head != NULL) {
printf("%d ", head->data);
head = head->next;
}
printf("\n");
}
int main() {
LinkList list = createList();
printList(list);
return 0;
}
```
运行结果:
```
请输入若干个正整数,以-1结束:
1 2 3 4 5 -1
逆序输出单链表:
5 4 3 2 1
```
题目内容:输入若干个正整数(输入-1为结束标志),要求按输入数据的逆序建立单链表并输出。(用C语言编写)
以下是用 C 语言编写的代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data;
struct Node *next;
} Node;
Node *createNode(int data) {
Node *node = (Node *) malloc(sizeof(Node));
node->data = data;
node->next = NULL;
return node;
}
Node *createList() {
Node *head = NULL;
Node *tail = NULL;
int data;
scanf("%d", &data);
while (data != -1) {
Node *node = createNode(data);
if (head == NULL) {
head = node;
tail = node;
} else {
node->next = head;
head = node;
}
scanf("%d", &data);
}
return head;
}
void printList(Node *head) {
Node *current = head;
while (current != NULL) {
printf("%d ", current->data);
current = current->next;
}
printf("\n");
}
int main() {
Node *head = createList();
printList(head);
return 0;
}
```
首先定义了一个结构体 `Node` 表示链表中的节点,包含了数据和指向下一个节点的指针。然后定义了 `createNode` 函数用于创建一个节点,并通过 `malloc` 函数分配内存空间。
接着定义了 `createList` 函数用于创建链表,将用户输入的正整数逆序建立链表。在函数内部,先定义了头指针 `head` 和尾指针 `tail` 初始值为 `NULL`,然后通过 `scanf` 函数读取用户输入的数据,创建一个新的节点,并将其插入到链表的头部或者尾部。当用户输入 `-1` 时,表示输入结束,此时返回头指针 `head`。
最后定义了 `printList` 函数用于打印链表中的所有数据,遍历链表并依次输出节点的数据。在主函数中,先调用 `createList` 函数创建链表,然后调用 `printList` 函数打印链表中的数据。