#c
Вопрос:
У меня возникли проблемы с печатью возраста в порядке убывания и второго по величине возраста, используя массив и функцию в c. Я могу ввести возраст, но я не могу распечатать элементы массива.И мне нужно решить этот вопрос с параметрами.
#include<stdio.h>
void read(int[],int);
void age(int[],int);
int main()
{
int arr[20],s;
read(arr,s);
age(arr,s);
}
void read(int arr[20],int s)
{
int i;
printf("Enter number of students:");
scanf("%d",amp;s);
printf("Enter age of %d sutdents:n",s);
for(i=0;i<s;i )
{
printf("Age of student %d:",i 1);
scanf("%d",amp;arr[i]);
}
}
void age(int arr[20],int s)
{
int i,j,a;
for(i=0;i<5;i )
{
for(j=i 1;j<5;j )
{
if(arr[i]>arr[j])
{
a=arr[i];
arr[i]=arr[j];
arr[j]=a;
}
}
}
printf("The ages in descending order are:n");
for(i=s;i>=0;i--)
{
printf("%dn",arr[i]);
}
}```
Комментарии:
1. вместо отправки
s
по значению наread
, попробуйте указатель. Вs
противном случае функция in main не обновляется.2. Большое вам спасибо 🙂
Ответ №1:
#include<stdio.h>
void read(int[],int);
void age(int[],int);
int main()
{
int arr[20],s;
read(arr,s);
//age(arr,s); //changed here
}
void read(int arr[20],int s)
{
int i;
printf("Enter number of students:");
scanf("%d",amp;s);
printf("Enter age of %d sutdents:n",s);
for(i=0;i<s;i )
{
printf("Age of student %d:",i 1);
scanf("%d",amp;arr[i]);
}
age(arr,s); //changed here
}
void age(int arr[20],int s)
{
int i,j,a;
for(i=0;i<s;i ) //changed here
{
for(j=i 1;j<s;j ) //changed here
{
if(arr[i]>arr[j])
{
a=arr[i];
arr[i]=arr[j];
arr[j]=a;
}
}
}
printf("The ages in descending order are:n");
for(i=s-1;i>=0;i--) //changed here
{
printf("%dn",arr[i]);
}
}
Надеюсь, вы понимаете.Спасибо