各位大佬,帮我看看代码,没输出内容?

#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b,c;
cin>>a>>b>>c;
if(a>b>c){
cout<<a<<" “<<b<<” “<<c;
}else
if(a>c>b){
cout<<a<<” “<<c<<” “<<b;
}else
if(b>a>c){
cout<<b<<” “<<a<<” “<<c;
}else
if(b>c>a){
cout<<b<<” “<<c<<” “<<a;
}else
if(c>a>b){
cout<<c<<” “<<a<<” “<<b;
}else
if(c>b>a){
cout<<c<<” “<<b<<” "<<a;
}
return 0;
}

10 个赞

不能连着写的!!!
举个例子:
想表示a > b > c,这样:

int a, b, c;
if (a > b && b > c)
    cout << a << " " << b << " " << c;
10 个赞

@陈晟亦

8 个赞

谢谢

11 个赞

作为普及的蒟蒻只会用数组sort:

#include <bits/stdc++.h>
using namespace std;
long long a[4];
int main(){
	cin>>a[1]>>a[2]>>a[3];
	sort(a+1,a+1+3);
	cout<<a[1]<<" "<<a[2]<<" "<<a[3];
}
10 个赞

+1

8 个赞

用我的速度更快:

#include <bits/stdc++.h>
using namespace std;
int a[3];
int main()
{
	scanf("%d%d%d", &a[0], &a[1], &a[2]);
	stable_sort(a, a + 3);
	printf("%d %d %d", a[0], a[1], a[2]);
}
9 个赞

但是我的代码打的速度更快

9 个赞

#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b,c;
cin>>a>>b>>c;
if(a>b&&b>c){
cout<<a<<" “<<b<<” “<<c;
}else
if(a>c&&c>b){
cout<<a<<” “<<c<<” “<<b;
}else if(b>a&&a>c){
cout<<b<<” “<<a<<” “<<c;
}else if(b>c&&c>a){
cout<<b<<” “<<c<<” “<<a;
}else if(c>a&&a>b){
cout<<c<<” “<<a<<” “<<b;
}else if(c>b&&b>a){
cout<<c<<” “<<b<<” "<<a;
}
return 0;
}

11 个赞

我的运行速度更快,排序也更稳定!!!

9 个赞

错了

10 个赞

是升序排序还是降序排序啊?

9 个赞
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <cstdlib>
#include <cmath>
using namespace std;
void merge(int* a, int low, int mid, int hight)  //合并函数
{
	int* b = new int[hight - low + 1];  //用 new 申请一个辅助函数
	int i = low, j = mid + 1, k = 0;    // k为 b 数组的小标
	while (i <= mid && j <= hight)  
	{
		if (a[i] <= a[j])
		{
			b[k++] = a[i++];  //按从小到大存放在 b 数组里面
		}
		else
		{
			b[k++] = a[j++];
		}
	}
	while (i <= mid)  // j 序列结束,将剩余的 i 序列补充在 b 数组中 
	{
		b[k++] = a[i++];
	}
	while (j <= hight)// i 序列结束,将剩余的 j 序列补充在 b 数组中 
	{
		b[k++] = a[j++];
	}
	k = 0;  //从小标为 0 开始传送
	for (int i = low; i <= hight; i++)  //将 b 数组的值传递给数组 a
	{
		a[i] = b[k++];
	}
	delete[]b;     // 辅助数组用完后,将其的空间进行释放(销毁)
}
void mergesort(int* a, int low, int hight) //归并排序
{
	if (low < hight)
	{
		int mid = (low + hight) / 2;
		mergesort(a, low, mid);          //对 a[low,mid]进行排序
		mergesort(a, mid + 1, hight);    //对 a[mid+1,hight]进行排序
		merge(a, low, mid, hight);       //进行合并操作
	}
}
int main()
{
	int n, a[100];
	cout << "请输入数列中的元素个数 n 为:" << endl;
	cin >> n;
	cout << "请依次输入数列中的元素:" << endl;
	for (int i = 0; i < n; i++)
	{
		cin >> a[i];
	}
	mergesort(a, 0, n-1);
	cout << "归并排序结果" << endl;
	for (int i = 0; i < n; i++)
	{
		cout << a[i] << " ";
	}
	cout << endl;
	return 0;
}

归并排序,小子!(转载

10 个赞

有一个音乐会的场地需要铺砖,假设场地是n∗m的矩形,小明有很多a∗a的地砖,现在小明想知道,要铺满整块地板(允许地砖覆盖的范围比场地的范围大),至少需要多少块a∗a的地砖。地砖不允许打碎,切割。

输入格式:

输入一行,包含三个正整数n,m,a 表示场地的长和宽,以及每个正方形地砖的边长。

输出格式:

输出一行,包含一个整数表示至少需要的地砖数量。

10 个赞

题目

10 个赞

那你代码就有问题啊!!!

8 个赞

Dangerous Syscall

9 个赞

我们还优化个啥?

8 个赞

这是一个关于计算铺砖数量的问题。给定场地的长和宽分别为 n 和 m,每块地砖的边长为 a,要铺满整块地板,至少需要的地砖数量可以通过以下公式计算:

int result = ceil((double)n / a) * ceil((double)m / a);

其中,ceil(x) 函数表示对 x 向上取整。例如,当 n=6,m=8,a=4 时,需要的地砖数量为 ceil(6/4)*ceil(8/4)=2*2=4

下面是一个完整的 C++ 程序,可以解决这个问题:

#include <iostream>
#include <cmath>
using namespace std;
int main() {
    int n, m, a;
    cin >> n >> m >> a;
    long long result = ceil((double)n / a) * ceil((double)m / a);
    cout << result << endl;
    return 0;
}
7 个赞

是我的原因

9 个赞