通过 uva 的中位数程序
Median program through uva
这是我第一次使用在线裁判,我尝试了一个简单的程序来熟悉环境。
这是个问题。
我按如下方式解决了它,但得到了错误的答案!
#include<stdio.h>
#include<math.h>
#include<iostream>
int main()
{
int t;
int n;
int num[10];
int i,j,temp;
int s;
int fmid;
std::cin >>t;
int iter=0;
while (iter<t)
{
std::cin>>n;
if (n!=-1){
for(i=0;i<n;i++)
std::cin>>num[i];
for( i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(num[i]>num[j])
{temp=num[i];
num[i]=num[j];
num[j]=temp;
}
s=0;
if (n%2 ==0)
{
int mid=n/2-1;
int midd=mid+1;
s=(num[mid]+num[midd])/2;
fmid=s;
}
else
{s=ceil(n/2);
fmid=num[s];}
std::cout<<fmid;
}
iter++;
}
return 0;
}
任何建议都非常感谢。
谢谢
我会读取所有数字,将它们存储在一个数组中,然后使用 std::sort
对数组进行排序<algorithm>
请在下面找到我的代码:
#include <stdio.h>
#include <math.h>
#include <iostream>
#include <algorithm>
int arr[10];
int main()
{
int N;
while ((std::cin >> N) && (N!=-1)){
for(int i=0;i<N;i++) {
std::cin >> arr[i];
}
std::sort(arr,arr+N);
if(N%2 == 1){
std::cout << arr[N/2] << std::endl;
}
else {
double ans = ((double)arr[N/2] + (double)arr[(N/2)-1]) / 2.0;
std::cout << ans << std::endl;
}
}
return 0;
}
我希望它对你有用。
我可以知道问题编号吗?我会尝试在那里提交并为您提供交流解决方案。
相关文章:
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- 在C应用程序中运行C++(带有STL)函数
- 如何在c++程序中找到函数的地址
- 在程序中编写脚本来编写和编译代码
- void*到驱动程序中的UnicodeString
- WM_CTLCOLORSTATIC从未在WIN32应用程序中触发
- 有可能在信号处理程序中设置promise吗
- 将类实现到数据库程序中
- 如何跨平台将二进制资源构建到程序中?
- 如何声明一个可以在整个程序中使用的全局 2d 3d 4d .. 数组(堆版本)变量?
- 如何在 64 位 vb.net Windows 应用程序中引用 32 位 dll
- 如何使用C++读取另一个程序中的源代码输出
- 不必要的C++代码最终会出现在我完成的程序中吗?
- 在气泡排序程序中未声明错误功能
- 我可以在 iOS 或 mac 应用程序中使用C++代码吗?
- 在信号处理程序中捕获C++未处理的异常并恢复应用程序
- 通过 uva 的中位数程序
- 错误:nth_element-没有重载函数实例(中位数查找程序)