1.输入m个浮点数,然后按升序进行排列输出
解析:首先是输入,输入的时候使for循环,并且以’\n’也就是回车作为循环的结束条件
其次就是排序,我使用的是冒泡排序,也就是双重循环,并设置一个临时的替代数,便于排序时的转换。
#include <stdio.h>
void sort(float flo[], int m);
/* 输入m个浮点数,然后按升序进行排列输出 */
int main(void)
{
int i,m = 0;
float flo[100];
char ch;
printf("请输入浮点数:\n");
for ( i = 0; ch != '\n'; i++ ) //回车作为循环结束条件
{
scanf("%f", &flo[i]);
ch = getchar();
m++;
}
sort(flo, m);
printf("以升序排列后:\n");
for ( i = 0; i < m; i++ )
printf("%5.2f\n", flo[i]);
return 0;
}
void sort(float flo[], int m)
{
int i, j;
float tmp;
for ( i = 0; i < m-1; i++ ) //冒泡排序
{
for ( j = 0; j < m-i-1; j++ )
{
if ( flo[j] > flo[j+1] )
{
tmp = flo[j];
flo[j] = flo[j+1];
flo[j+1] = tmp;
}
}
}
}
- 输入10个整数,找出与平均数最接近的数并输出
输入依旧是for循环,求平均数和寻找与平均数最接近的数可以写成函数,提高代码的可用性,
在求平均数中,就是循环遍历,将每个数组元素加起来形成总和,除以其元数个数;
找最接近的数,可以将各个元素与平均数差的绝对值(fabs())存入另一个数组,并找出其中的最小值随对应的下标,即使最接近数在原数组中的下标,从而找出最接近的数。
#include <stdio.h>
#include <math.h>
#define N 10
float aver(int a[]);
int search(int a[], float average); //寻找与平均数最接近的数
int main(void)
{
int a[N], i, tmp = 0, sum = 0;
float average;
printf(