‘壹’ c语言编程,对用户输入的 N ( 0 < N <= 20) 个实数进行升序排序并输出排序结果
如同你的第一个输入语句一样,第二处的图文语句也要用&取地址符号。还有排序时的范围也错了。改正后的程序如下,已经运行通过:
#include<stdio.h>
voidmain()
{
inti,o,p;
floata[100],t;
scanf("%d",&o);
for(i=0;i<o;i++)
{
scanf("%f",&a[i]);
}
for(i=0;i<o-1;i++)
{
for(p=0;p<o-i-1;p++)
{
if(a[p]>a[p+1])
{
t=a[p];
a[p]=a[p+1];
a[p+1]=t;
}
}
}
for(i=0;i<o;i++)
{
printf("%.1f",a[i]);
}
printf(" ");
}
‘贰’ C语言如何输入十个数,按从大到小顺序排列!
用选择排序法编写c语言,实现从键盘上输入10个数,按从大到小的顺序排序输出。代码如下:
#include<stdio.h>
int main()
{
int i,j,a[10],t;
printf("输入数");
for (i = 0; i < 10; i++)
scanf("%d",&a[i]);
for (i = 0; i < 10; i++)
{
for (j = i + 1; j < 10;j++)
if (a[i] < a[j]){
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
printf("从大到小");
for (i = 0; i < 10; i++)
printf("%2d", a[i]);
return 0;
}
(2)c语言输入实数排序扩展阅读:
代码还可以设计,如下:
#include<stdio.h>
int main()
{
int a[10],i,j,t;//定义数组;
for(i=0;i<10;i++){
scanf("%d",&a[i]);//给数组赋值;
}
for(i=0;i<9;i++)//10个数,进行9轮比较;
for(j=0;j<10-i;j++){//第一个数比较9次,依次递减;
if(a[j]>a[j+1]) {//交换值;
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
for(i=0;i<10;i++){
printf("%d ",a[i]);//输出数组的值;
}
return 0;
}
}
printf("the sorted numbers: ");
for(i=0;i<10;i++)
printf(" %d",a[i]);
printf(" ");
}
‘叁’ 输入两个实数,按代数值由大到小的顺序输出这两个数。(都用C语言实现)
void
main()
{
int
a,b;
printf("请输入两个数字,将判断他们谁大");
scanf("%d%d",&a,&b);
if(a>b)
{
printf("%d大于%d",a,b);
}
if(a<b)
{
printf("%d大于%d",b,a);
}
else
{
printf("两个数一样大");
}
}
‘肆’ C语言输入一个整数n,再输入n个实数,用冒泡排序法为实数序列做降序排序
#include<stdio.h>
int main()
{
int n;
float a[100],t;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%f",&a[i]);
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n-i-1;j++)
{
if(a[j]<a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for(int i=0;i<n;i++)
{
printf("%.2f ",a[i]);//保留两位小数
}
return 0;
}
‘伍’ C语言编程序:输入两个实数,按代数值由大到小的顺序输出这两个数。
#include<stdio.h>
void main()
{
float a,b,t;
scanf("%f,%f",&a,&b);
if(a>b)//这里多了个;,就是没有进入if下面的调换,去掉就可以了
{t=a;
a=b;
b=t;}
printf("%f,%f\n",a,b);
}
‘陆’ C语言编程,用选择法对数组中20个实数进行排序
选择排序法:
#include
"stdio.h"
#define
N
20
main()
{
int
i,j,k;
float
a[N],t;
printf("请输入二十位数:\n");
for(i=0;i<N;i++)
scanf("%f",&a[i]);
for(i=0;i<N-1;i++)
{
k=i;
for(j=i+1;j<N;j++)
if(a[k]>a[j])
k=j;
if(i!=k)
{
t=a[k];
a[k]=a[i];
a[i]=t;
}
}
for(i=0;i<N;i++)
printf("%f\t",a[i]);
printf("\n");
}
插入排序法:
#include
"stdio.h"
#define
N
20
main()
{
int
i,j;
float
a[N],k;
printf("请输入二十位数:\n");
for(i=0;i<N;i++)
scanf("%f",&a[i]);
for(i=0;i<N;i++)
{
k=a[i];
j=i-1;
while(j>=0&&k<a[j])
{
a[j+1]=a[j];
j--;
}
a[j+1]=k;
}
for(i=0;i<N;i++)
printf("%f\t",a[i]);
printf("\n");
}
冒泡排序法:
#include
"stdio.h"
#define
N
20
main()
{
int
i,j;
float
a[N],t;
printf("请输入二十位数:\n");
for(i=0;i<N;i++)
scanf("%f",&a[i]);
for(i=0;i<N;i++)
for(j=i+1;j<N;j++)
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
for(i=0;i<N;i++)
printf("%f\t",a[i]);
printf("\n");
}
如果对你有帮助,请记得采纳最佳答案,谢谢!
‘柒’ 关于C语言中实数的排序问题
一,排序算法有问题
二,float型的默认时保留小数点六位,2.0和2.000000是不等的
三,精度问题
四,float型默认六位,多出的位数随即产生
for(i=0;i<n;i++) /*使用选择法排序*/
{
k=i;
for(j=i+1;j<n;j++)
{
if(y[j]<y[k])
{
k=j;
continue;
}
}
if(k!=i)
{
t=y[k];
y[k]=y[i];
y[i]=t;
}
}
‘捌’ C语言输入任意3个实数,然后按倒序和依次输出怎么编程
思路:利用输入语句输入3个实数,用输出语句输出正序,用输出语句输出反序
/*源程序如下:*/
#include<stdio.h>
int
main()
{
float x,y,z;/*定义3个整数*/
printf("请输入一个3个实数:");
scanf("%f,%f,%f",
&x,&y,&z);/*输入3个数中间用逗号分开*/
printf("依次输出这三个数为:%f,%f,%f\n“,x,y,z);
printf("倒序输出这三个数为:%f,%f,%f\n“,z,y,x)/*将输出的三个数位置倒序即可*/
return
0;
}
VC++6.0测试如下
请输入一个3个实数:1,2,3
依次输出这三个数为:1.00,2.00,3.00
倒序输出这三个数为:3.00,2.00,1.00
‘玖’ 4个数比较大小,结果从小到大排列,用C语言怎么编
1、首先双击打开桌面上的C-Free5编程软件。
‘拾’ c语言输入任意5个实数,按照由大到小排序输出
用C语言实现如下功能:从键盘输入5个实数,可以使用冒泡排序法把他们降序输出。
#include “stdio.h”
main()
{
int a[8];
int j,i;
for(i=0;i<5;i++)
{
printf(“请输入第%d个数:\n”,i+1);
scanf(“%d”,&a[i]);
}
for(i=0;i<;j++)
for(i=0;i<5–j;i++)
{
if(a[i]>a[i+1])
a[i+1]=a[i];
}
for(i=0;i<5;i++)
printf("\n排序后的结果是:%d\n",a[i]);
return 0;
}