从键盘输入10个浮点数保存到一堆数组中,输出大于平均值的元素及其下标
稍等,我帮你写一个吧
#include <stdio.h>
int main()
{
int i, count = 0;
float sum = 0, avg;
float nums[10];
printf("请输入10个浮点数:\n");
for(i = 0; i < 10; i++) {
scanf("%f", &nums[i]);
sum += nums[i];
}
avg = sum / 10;
printf("大于平均值的元素及其下标:\n");
for(i = 0; i < 10; i++) {
if(nums[i] > avg) {
printf("%d:%f ", i, nums[i]);
count++;
}
}
if(count == 0) {
printf("没有元素大于平均值\n");
}
return 0;
}
#include <iostream>
using namespace std;
int main() {
double arr[10];
double sum = 0;
for (int i = 0; i < 10; i++) {
cout << "请输入第" << i+1 << "个元素:";
cin >> arr[i];
sum += arr[i];
}
double avg = sum / 10;
cout << "平均值为:" << avg << endl;
cout << "大于平均值的元素及其下标为:";
for (int i = 0; i < 10; i++) {
if (arr[i] > avg) {
cout << "arr[" << i << "]=" << arr[i] << " ";
}
}
return 0;
}
输入提示信息:“Input 10 numbers:”
输入格式:"%d"
输出提示信息:“Exchang results:”
输出格式:"%4d"
程序运行结果示例:
Input 10 numbers:8 2 7 4 9 11 5 47 6 97↙
Exchang results: 8 97 7 4 9 11 5 47 6 2
第一次这么认真地做学校C语言习题。虽然写的代码又臭又长,而且没有按照要求的函数原型来写……(标准答案在最后面)
#include <stdio.h>
#include <stdlib.h>
void Input(int a[],int n);
int Findmax(int a[],int n);
int Findmin(int a[],int n);
void Exchange(int x[], int n, int a,int b);
void Output(int a[],int n);
int main()
{
printf("Input 10 numbers:");
int num[10];
int max,min;
Input(num,10);
max=Findmax(num,10);
min=Findmin(num,10);
printf("%d,%d",max,min);
Exchange(num,10,max,min);
printf("Exchang results:");
Output(num,10);
return 0;
}
void Input(int a[],int n)
{
int i;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
return 0;
}
int Findmax(int a[],int n)
{
int i,findmax=a[0];
for(i=1;i<n;i++)
{
if(findmax<a[i])
findmax=a[i];
}
return findmax;
}
int Findmin(int a[],int n)
{
int i,findmin=a[0];
for(i=1;i<n;i++)
{
if(findmin>a[i])
findmin=a[i];
}
return findmin;
}
void Exchange(int x[], int n, int a,int b)
{
int i;
printf("%d,%d\n",a,b);
for(i=0;i<10;i++)
{
if(x[i]==a)
x[i]=b;
else if(x[i]==b)
x[i]=a;
else
x[i]=x[i];
}
}
void Output(int a[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%4d",a[i]);
}
return 0;
}
然后是标准答案:
#include <stdio.h>
void MaxMinExchang(int a[], int n);
int FindMaxPos(int s[], int n);
int FindMinPos(int s[], int n);
int main()
{
int i, a[10];
printf("Input 10 numbers:");
for (i = 0; i < 10; i++)
{
scanf("%d", &a[i]);
}
MaxMinExchang(a, 10);//1
printf("Exchang results:");
for (i = 0; i < 10; i++)
{
printf("%4d", a[i]);//1
}
printf("\n");
return 0;
}
/* 函数功能:将数组中的最大数与最小数位置互换 */
void MaxMinExchang(int a[], int n)
{
int maxPos, minPos, temp;
maxPos = FindMaxPos(a, n);//1
minPos = FindMinPos(a, n);//1
temp = a[maxPos];
a[maxPos] = a[minPos];//1
a[minPos] = temp;
}
/* 函数功能:计算数组中的最大值在数组中的下标位置 */
int FindMaxPos(int s[], int n)//1
{
int maxPos = 0, max = s[0], i;
for (i = 1; i < n; i++)
{
if (s[i] > max) //1
{
max = s[i];
maxPos = i;
}
}
return maxPos;
}
/* 函数功能:计算数组中的最小值在数组中的下标位置 */
int FindMinPos(int s[], int n)//1
{
int minPos = 0, min = s[0], i;
for (i = 1; i < n; i++)
{
if (s[i] < min)//1
{
min = s[i];
minPos = i;
}
}
return minPos;
}
同学们还是要认真对待每一门课程,不要像我一样偷懒!呜呜呜呜呜。