/*用冒泡排序对10名学生的成绩进行排序*/
#include <stdio.h>
int maopao(int a[]);
int main()
{
int a[10];
int i;
printf("请输入10个学生的成绩(用空格分开):\n");
for(i=0; i<10; i++)
{
scanf("%d", &a[i]);
}
maopao(a);
return 0;
}
int maopao(int a[])
{
int i, j, s;
for(i=0; i<9; i++)
{
for(j=0; j<9-i; j++)
{
if(a[j] > a[j+1])
{
s= a[j];
a[j]= a[j+1];
a[j+1] = s;
}
}
}
for(i=9; i>=0; i--) //从大到小输出
{
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
/*用选择法对10个学生成绩进行排名*/
#include <stdio.h>
int xuanze(int a[]);
int main()
{
int a[10];
int i;
printf("请输入10位同学的成绩:\n");
for(i=0; i<10; i++)
{
scanf("%d", &a[i]);
}
xuanze(a);
return 0;
}
int xuanze(int a[])
{
int i, j, s;
for(i=0; i<9; i++)
{
for(j=i+1; j<10; j++)
{
if(a[i] > a[j])
{
s = a[i];
a[i] = a[j];
a[j] = s;
}
}
}
for(i=9; i>=0; i--)
{
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
/*查找一个数在数组中的排名*/
#include <stdio.h>
int main()
{
int a[10];
inti, s, flag; //s为要查找的数,flag用于标记要查找的数的名次
printf("请输入10个数(用空格分开):\n");
for(i=0; i<10; i++)
{
scanf("%d", &a[i]);
}
printf("请输入要查找的数:");
scanf("%d", &s);
maopao(a);
printf("排好序的数组:\n");
for(i=9; i>=0; i--)
{
printf("%d ",a[i]);
if(a[i] == s)
{
flag = 10-i; //数组从大到小排,总共10个,a[i]个前有i个元素
}
}
printf("\n该数的排名是:%d\n",flag);
return 0;
}
int maopao(int a[]) //用冒泡排序对具有10位数据的数组进行排序
{
int i, j, s; //s用来交换两个数
for(i=0; i<9; i++)
{
for(j=0; j<9-i; j++)
{
if(a[j] > a[j+1])
{
s= a[j];
a[j]= a[j+1];
a[j+1] = s;
}
}
}
return 0;
}
/*输入一个正整数,求出它是几位数,并逆序输出*/
#include <stdio.h>
int nixu(int z);
int main ()
{
int z;//z是输入的整数
printf ("请输入一个正整数:");
scanf ("%d",&z);
nixu(z);
return 0;
}
int nixu(int z)
{
int n, p;//z是输入的整数n表示正整数的位数m是逆序后的正整数
n= 0;
p= z;
while (z > 0)
{
z /= 10;
n++;
}