3、请编写一个程序,使其可以实现:输入n(0<ns10)个整数,删除其中的负数。例如,输入1,-2,3,-4,5,-6,7,输出结果为1357。
时间: 2023-04-01 16:04:48 浏览: 122
您好,以下是程序的代码:
#include <stdio.h>
int main() {
int n, i, num;
scanf("%d", &n);
for (i = ; i < n; i++) {
scanf("%d", &num);
if (num >= ) {
printf("%d", num);
}
}
return ;
}
该程序可以实现输入n个整数,删除其中的负数,并输出结果。
相关问题
编写程序,输入一个正整数n(1<ns10),再输入n个正数,输出平均值(保留两位小数),输出上题中最大数和最小数的下标,并逆序输出这些数。
您好,这是一个编程问题,我可以回答。以下是代码示例:
#include <stdio.h>
int main() {
int n, i, max_index = , min_index = ;
float sum = , max, min;
scanf("%d", &n);
float nums[n];
for (i = ; i < n; i++) {
scanf("%f", &nums[i]);
sum += nums[i];
if (i == || nums[i] > max) {
max = nums[i];
max_index = i;
}
if (i == || nums[i] < min) {
min = nums[i];
min_index = i;
}
}
printf("平均值为:%.2f\n", sum / n);
printf("最大数下标为:%d\n", max_index);
printf("最小数下标为:%d\n", min_index);
printf("逆序输出这些数:");
for (i = n - 1; i >= ; i--) {
printf("%.2f ", nums[i]);
}
return ;
}
希望能对您有所帮助。
有3xn个数字,需要将它们分成n个小组,每个小组有且仅有三个数字,每个小组的得分为这个小组内分数排名最中间的数字,请小组的分数之和到达最大,应该如何划分这些数字? 输入描述 第一行:单个整数n;第二行: 3n个整数a1,a2,.,. ,a3n。 输出描述 单个整数:表示可以得到的最大分数之和。 样例输入 637149782 样例输出1 提示 数据范围对于30%的数据,1≤n≤10; 对于70%的数据,1sns10^3; 对于100%的数据,1≤ns10^5; 1sais10^9
这是一道贪心算法的问题。我们可以将每组中间的数字作为该组的得分,然后将所有得分相加就是最终的最大分数之和。
具体实现方法如下:
1. 将3n个数字从小到大排序。
2. 依次取出每组中间的数字,即第2个数字,对所有中间数字求和,得到最大分数之和。
以下是C++实现的示例代码:
```c++
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int n, sum = 0;
cin >> n;
int nums[3*n];
for (int i = 0; i < 3*n; i++) {
cin >> nums[i];
}
sort(nums, nums+3*n); // 排序
for (int i = n; i < 3*n; i += 2) { // 取中间数字
sum += nums[i];
}
cout << sum << endl;
return 0;
}
```
在该程序中,我们首先从输入中读取n和3n个数字,然后将这些数字从小到大排序。接着,我们依次取出每组中间的数字,即第2个数字,并将所有中间数字相加,得到最大分数之和。最后,我们输出计算结果。
阅读全文