用C语言编程比较10个数的从大小顺序比较大小
10个数的从大到小的顺序排序
#includestdio.h
int main(void){
int i,j,tmp,arr[10]={0};
for(i=0;i=9;++i){
scanf(“%d”,arr[i]);
}
for(i=0;i=9;++i){
for(j=0;j=8;++j){
if(arr[j]arr[j+1]){
tmp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tmp;
}
}
}
for(i=0;i=9;++i){
printf(“%d “,arr[i]);
}
printf(“\n”);
return 0;
}
c语言10个数求大小
#includestdio.h
#define
N
10
int
main()
{
void
Input(int
[]);
void
MaxMin(int
[],int
*,int
*);
void
Print(int
[],int
*,int
*);
int
a[N],max,min;
Input(a);
MaxMin(a,max,min);
Print(a,max,min);
return
0;
}
void
Input(int
a[])
{
int
*x
=
a
+
N;
printf(“请输入十个数:\n”);
for(;ax;a++)
scanf(“%d”,a);
}
void
MaxMin(int
a[],int
*max,int
*min)
{
int
*x
=
a
+
N;
*max
=
*min
=
a[0];
for
(;
ax;
a++)
{
if
(*a
*max)
*max
=
*a;
if
(*a
*min)
*min
=
*a;
}
}
void
Print(int
a[],int
*max,int
*min)
{
int
*x
=
a
+
N;
printf(“最大的数是:%d\n”,*max);
printf(“最小的数是:%d\n”,*min);
printf(“原整个数组为:\n”,*min);
for
(;ax;a++)
printf(“%d
“,*a);
printf(“\n”);
}
运行结果:
C语言比较十位数的大小
你的程序问题是出在循环这里了
for(i;i10;i++)
{
for(j=i;j10;j++) 这里j应该是j=i+1
{
b[i]=max(b[i],b[j]); 这里你的本意是找出剩下数字中第i位最大的,但是这条语句结合调用的函数实际返回的是10个数据中最大的存放在b[i]中。因为你的max()函数,只是返回两个数中最大的,你没有将这两个比较的数进行比较大小后的交换,造成找到大数据后,小数据就被替换了,在原来的数据中没有了。函数max(x,y)中的参数是局部变量,只在函数体中有效,要不你就传递地址变量。其实这里可以不用函数这么麻烦的,直接在循环体里比较大小就可以了。你可以参考选择排序或冒泡排序的算法。
}
printf(“%d”,b[i]);
}
#includestdio.h
int main()
{
int b[10],i=0,j=0,a=0;
printf(“\nEnter 10 numbers:\n”);
for(i;i10;i++)
scanf(“%d\n”,b[i]);
for(i;i10;i++)
{
for(j=i+1;j10;j++)
{
if(b[i]b[j])
{a=b[i];
b[i]=b[j];
b[j]=a;
}
}
printf(“%d”,b[i]);
}
printf(“\nPress any key to end!\n”);
getch();
}
c语言,10个数比较大小
以第一次循环为例,i=0
第二个for循环时找到数组里面最大的数的位置 k=j
找到位置之后 通过 if(k!=i) 要把这个最大的, 和数 x[i] 换位置, 当i=k时 找到的数就是x[i], 不用换
最大数和x[0]换, 第二大数和x[1]换 通过i++实现,依次类推
十个数比较大小,用c语言怎么比? 输出最大数和最小数。
#include stdio.h
void main(){
int i,max,min,n;
scanf(“%d”,n);
max=n;min=n;
for(i=1;i10;i++){
scanf(“%d”,n);
if(maxn) max=n;
if(minn) min=n;
}
printf(“最大数:%d,最小数:%d”,max,min);
}
运行示例:
c语言怎么比较10个数的大小,说一下思路
可以用冒泡排序法,用for循环9次,每次都判断前一个数是否大于后一个数
再交换
就是两个for的嵌套
这是思路
把8改成10
就是了