写一个C程序,任意输入三个数,求出他们的
时间: 2023-06-09 18:02:59 浏览: 40
平均数。
好的,我可以帮你写一个求三个数平均数的C程序。以下是代码:
```
#include <stdio.h>
int main() {
float num1, num2, num3;
printf("请输入三个数,并用空格隔开:");
scanf("%f%f%f", &num1, &num2, &num3);
float avg = (num1 + num2 + num3) / 3;
printf("这三个数的平均数为 %.2f", avg);
return 0;
}
```
你可以直接复制代码,编译并运行。程序将会提示你输入三个数,输入之后即可得到这三个数的平均数。值得注意的是,代码中 "%.2f" 这一段的意思是将结果保留两位小数输出。
相关问题
c语言写一个程序,任意输入几个数,用链表逆序输出
好的,以下是一个简单的C语言程序,可以实现你所需要的功能:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data;
struct Node* next;
} Node;
Node* createList(int num);
void printList(Node* head);
void reverseList(Node** head);
int main() {
int num;
printf("请输入要输入的数字个数:");
scanf("%d", &num);
Node* head = createList(num);
printf("原始链表:");
printList(head);
reverseList(&head);
printf("逆序输出:");
printList(head);
return 0;
}
Node* createList(int num) {
Node* head = NULL;
Node* p = NULL;
int data;
for (int i = 1; i <= num; i++) {
printf("请输入第%d个数字:", i);
scanf("%d", &data);
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = data;
newNode->next = NULL;
if (head == NULL) {
head = newNode;
p = head;
} else {
p->next = newNode;
p = p->next;
}
}
return head;
}
void printList(Node* head) {
Node* p = head;
while (p != NULL) {
printf("%d ", p->data);
p = p->next;
}
printf("\n");
}
void reverseList(Node** head) {
Node* p = *head;
Node* q = NULL;
Node* r = NULL;
while (p != NULL) {
r = q;
q = p;
p = p->next;
q->next = r;
}
*head = q;
}
```
程序流程如下:
1. 输入数字个数;
2. 通过 `createList()` 函数创建链表;
3. 通过 `printList()` 函数打印原始链表;
4. 通过 `reverseList()` 函数逆序链表;
5. 通过 `printList()` 函数打印逆序输出的链表。
在 `createList()` 函数中,我们使用了一个 `Node` 结构体来表示链表中的节点,其中包含了节点的数据以及指向下一个节点的指针。在循环中,我们要求用户输入每个数字,并将其添加到链表中。如果链表为空,则新建一个节点作为链表头;否则,将新建的节点添加到链表尾部。
在 `printList()` 函数中,我们遍历链表并打印每个节点的数据。
在 `reverseList()` 函数中,我们使用了三个指针 `p`,`q` 和 `r`。`p` 和 `q` 分别指向当前节点和其前一个节点,`r` 则指向 `q` 的前一个节点。在循环中,我们依次将每个节点的 `next` 指针指向其前一个节点,最终将链表头指向 `q`。这样就实现了逆序输出链表的功能。
希望对你有帮助!
任意输入一个三位数,编程给出重排求差的过程。 c语言
下面是一个简单的 C 语言程序,实现了输入一个三位数,对其进行重排,并输出求差的过程:
```c
#include <stdio.h>
int main() {
int num, a, b, c, max, min, diff;
// 输入一个三位数
printf("请输入一个三位数:");
scanf("%d", &num);
// 分离出百位数、十位数和个位数
a = num / 100;
b = (num % 100) / 10;
c = num % 10;
// 找出最大和最小的数字
max = a > b ? (a > c ? a : c) : (b > c ? b : c);
min = a < b ? (a < c ? a : c) : (b < c ? b : c);
// 计算差值
diff = max * 100 + b * 10 + min - num;
// 输出重排和求差的过程
printf("%d - %d = %d\n", max * 100 + b * 10 + min, num, diff);
return 0;
}
```
程序运行示例:
```
请输入一个三位数:345
543 - 345 = 198
```
其中,输入的数字 345 被拆分为 a=3、b=4 和 c=5,然后找出其中最大和最小的数字,对其进行重排得到 543,再计算其与原来的数字 345 的差值,即为 198。