Dev-c编写任意输入n个数,输出其中最大数和最小数,并输出它们在序列中的位置。
时间: 2023-05-22 14:06:18 浏览: 67
这个问题可以通过编写一个简单的程序来实现。以下是这个程序的代码:
```c
#include <stdio.h>
int main() {
int n, i, max, min, pos_max, pos_min, num;
scanf("%d", &n);
scanf("%d", &num);
max = num;
min = num;
pos_max = pos_min = 1;
for (i = 2; i <= n; i++) {
scanf("%d", &num);
if (num > max) {
max = num;
pos_max = i;
}
if (num < min) {
min = num;
pos_min = i;
}
}
printf("最大数为:%d,位置为:%d\n", max, pos_max);
printf("最小数为:%d,位置为:%d\n", min, pos_min);
return 0;
}
```
你只需要把这个代码复制到 Dev-C++ 编辑器中,编译并运行,就可以输入一个序列并输出其中的最大数、最小数以及它们在序列中的位置。
相关问题
在dev中,从键盘输入 20 个整型数据,统计其中正数的个数,并计算它们的求和,在此基础上,找出最大数和最小数并输出对应的下标
好的,我来解答你的问题。
以下是 C++ 代码实现:
```c++
#include <iostream>
using namespace std;
int main() {
const int N = 20; // 数组元素个数
int a[N]; // 定义整型数组
int count = 0; // 正数个数
int sum = 0; // 正数求和
int max_index = 0, min_index = 0; // 最大最小数的下标
// 从键盘输入数据
for (int i = 0; i < N; i++) {
cin >> a[i];
if (a[i] > 0) { // 判断是否为正数
count++; // 正数个数加一
sum += a[i]; // 求和
}
if (a[i] > a[max_index]) { // 更新最大数的下标
max_index = i;
}
if (a[i] < a[min_index]) { // 更新最小数的下标
min_index = i;
}
}
// 输出结果
cout << "正数个数:" << count << endl;
cout << "正数求和:" << sum << endl;
cout << "最大数:" << a[max_index] << ",下标:" << max_index << endl;
cout << "最小数:" << a[min_index] << ",下标:" << min_index << endl;
return 0;
}
```
以上代码中,我们定义了一个长度为 20 的整型数组 `a`,通过 `for` 循环从键盘输入 20 个整数。在循环中,我们判断每个元素是否为正数,若是,则将正数个数加一,并将其加入到正数求和中。同时,我们使用两个变量 `max_index` 和 `min_index` 分别记录最大数和最小数的下标,最后输出统计结果。
注意,我们使用 `const int N = 20` 定义了数组元素个数,这样可以在程序其他地方复用 `N`。同时,我们使用 `using namespace std` 简化了代码,不过在实际开发中最好避免这样做,以免引入不必要的名字冲突。
用Dev-c编写程序使用链表输入输出5个学生的信息(学号、姓名、成绩),其中输入输出使用函数实现,在main函数中调用它们。
好的,让我为您解答这个问题。
首先,我们需要定义一个结构体来存储每一个学生的信息,包括学号、姓名和成绩。代码如下:
```c
struct student {
int id;
char name[20];
int score;
};
```
接下来,我们需要定义一个链表结构体,用来存储多个学生的信息。链表结构体包含一个指向下一个节点的指针,以及一个指向节点的结构体指针。
```c
struct node {
struct student data;
struct node *next;
};
```
现在,我们可以编写一个输入学生信息的函数,该函数会创建一个新节点,将学生信息添加到该节点,并将该节点添加到链表中。
```c
void add_student(struct node **head) {
struct node *new_node = (struct node *)malloc(sizeof(struct node));
printf("请输入学生的学号、姓名和成绩:\n");
scanf("%d %s %d", &(new_node->data.id), new_node->data.name, &(new_node->data.score));
new_node->next = *head;
*head = new_node;
}
```
我们还需要一个函数来输出链表中存储的每个学生的信息。
```c
void print_students(struct node *head) {
printf("学号\t姓名\t成绩\n");
while (head != NULL) {
printf("%d\t%s\t%d\n", head->data.id, head->data.name, head->data.score);
head = head->next;
}
}
```
最后,我们需要在 main 函数中调用这些函数来输入输出学生信息。
```c
int main() {
struct node *head = NULL;
int i;
for (i = 0; i < 5; i++) {
add_student(&head);
}
print_students(head);
return 0;
}
```
这个程序使用了一个指向指针的指针作为参数,使得我们可以在 add_student 函数中修改指向链表头节点的指针。然后,我们在 main 函数中调用 add_student 函数五次,输入五个学生的信息,最后打印输出所有学生的信息。
希望这个解答对您有所帮助。如果您有其他问题,请随时问我。