#include <stdio.h>
#include <stdlib.h> // 包含rand()和srand()函数
#include <time.h> // 包含time()
#define MAXlen 100
void bubble_sort(double *x,int *a,unsigned int n) { // 冒泡排序函数
int j, k, h,tmp;
double t;
for(h = n - 1; h > 0; h--) { // 循环到没有比较范围
for(j = 0, k = 0; j < h; j++) { // 每次预置k = 0,循环扫描后更新k
if(*(x + j) > *(x + j + 1)) { // 大的放在后面,小的放到前面
t = *(x + j);
*(x + j) = *(x + j + 1);
*(x + j + 1) = t; // 完成交换 */
k = j; // 保存最后下沉的位置。这样k后面的都是排序排好了的。
tmp = a[j];
a[j] = a[j + 1];
a[j + 1] = tmp;
}
}
}
}
int main() {
int ia[] = {1,1,0,0,0}; // 1表示数组da的对应位置是整数,0表示浮点数
double da[] = {69.0,78.0,56.6,72.5,96.3}; // 前两个是整数,后三个是浮点数
unsigned n = sizeof(ia)/sizeof(ia[0]);
printf("排序前:\n");
for(unsigned i = 0;i < n;i++) {
if(ia[i] == 1) printf("%4d ",(int)da[i]);
else printf("%.2lf ",da[i]);
}
printf("\n");
bubble_sort(da,ia,n);
printf("排序后:\n");
for(i = 0;i < n;i++) {
if(ia[i] == 1) printf("%d ",(int)da[i]);
else printf("%.2lf ",da[i]);
}
printf("\n");
return 0;
}
追问要求把两个整数排一起,三个浮点数排一起
追答排序后,其顺序是惟一的,两个整数可能在一起,也可能不在一起,既然要求排在一起,那还排序干嘛?
追问老师就是那么要求的
追答那只能改变两个整数的大小,迫使排序后,两个整数排在一起。比如
两个整数分别为: 36,45,则排序结果为: 36,45,56.60,72.50,96.30
当然可选数值很多,你可以自己试试!
C++中三个浮点数比较大小
int i,j;double f[3]; \/\/待比较浮点数 double temp;\/\/由大到小进行排序 for ((i = 0; i < 3; i++)for ((j = 0; j < 3; j++)if(-1 == FloatCompare(f[i], f[j])) \/\/小于,则互换 { temp = f[i];f[i] = f[j];f[j] = temp }\/\/输出 for (i = 0; i...
c++ 输入两个实数,按代数值由小到大的顺序输出这两个数
t=a;a=b;b=t;} 重点在这个语句里面,如果你输入的数a,b,如果前者大 就不进行这个语句,直接输出,如果前者小于后者则进行这个语句,进行互换值,意思就是原来的a的值变为现在的b的值,原来的b的值给了a 。不知这样解释您是否能够理解?
用C语言输入3个整数,要求按从小到大的顺序输出。谢谢大家
include<stdio.h>void main(){int a,b,c,t;printf("请输入三个整数:a b c\\n");scanf("%d%d%d",&a,&b,&c);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}printf("排序后的三个整数为:%d,%d,%d\\n",a,b,c);} 语言标准 起初,C...
C++一个整数加一个浮点数结果是什么
整数与浮点数一起运算, 结果将会是浮点数
C++ 设计一个函数,将两个浮点数传入,然后通过引用把其和、差、积传出...
你可以使用下面的方法实现 void Math(float a,float b,float &sum,float &sub, float &pro){ &sum = a + b;&sub = a - b;&pro = a * b;} 参考资料:http:\/\/www.biye5u.com\/article\/prog\/C\/list26-1.html
C++求助!!任意输入n个浮点数,输出它们本身及平均值、和
double a[n];cout<<"Please input the numbers:\\n";for(m=0;m<n;m++){ cin>>a[m];} for(m=0;m<n;m++){ sum+=a[m];} average=sum\/n;cout<<"sum="<<sum<<endl;cout<<"average="<<average<<endl;return 0;} 主要就是数组定义时的n,还有for循环那里,三个表达式的顺序 ...
【C++】用三个重载 求整数,单浮点数,双浮点数绝对值
cout<<"请输入一个整数:"<<'\\n';cin>>x;if(x>=0) cout<<"绝对值是:"<<x<<'\\n';else cout<<"绝对值是:"<<(-1)*x<<'\\n';return 0;} float jueduib(float b){ float y;cout<<"请输入一个单浮点数:"<<'\\n';cin>>y;if(y>=0.0) cout<<"绝对值是:"<<y<<...
c++编写一个程序,要求输入两个数a和b,计算出a和b的和,差,积,并输出...
一旦获取到两个有效的整数,程序将进行如下计算:-输出a和b的和,即a+b。-计算a和b的差,即a-b。-计算a和b的积,即a*b。-计算a除以b的商(注意除法可能产生小数,因此使用浮点数表示),即a\/(b*1.0)。-计算a除以b的余数,即a%b。最后,使用system函数暂停程序执行,等待用户按任意键继续...
3.设计一个完整的C++程序定义一个类模板,利用它实现10个整数、浮点数...
\/\/ 浮点数排序 std::vector<float> floatData = { 7.2f, 2.5f, 9.8f, 1.3f, 5.6f, 4.1f, 8.7f, 3.9f, 6.4f, 10.0f };Sorter<float> floatSorter(floatData);floatSorter.Sort();std::cout << "Sorted Floats: ";floatSorter.PrintSorted();\/\/ 字符排序 std::vector<char...
编写程序,接受两个双精度浮点数,输出他们的和.
楼上的同志sum没赋初值 d是输入十进制,double的话要改为%lf include<stdio.h> void main(){ double a,b,sum=0;printf("please input two number : ");scanf("%lf,%lf",&a,&b);sum=a+b;printf("a+b=%lf",sum);}