我正在实现一个简单的程序来使用C从数组中查找最大和最小的元素。但是在某些情况下我得到意外的输出。请检查this输出。请查看以下代码。
#include<stdio.h>
#include<stdlib.h>
int largest(int *input)
{
int i=0,large=0;
for(;i<input[i]!='\0';i++)
{
if(input[i]>large)
large=input[i];
}
return large;
}
int smallest(int *input)
{
int i=0,small;
small=input[i];
for(;i<input[i]!='\0';i++)
{
if(input[i]<small)
small=input[i];
}
return small;
}
void main()
{
int *input;
int size,i=0,large,small;
printf("Enter size of array:\n");
scanf("%d",&size);
printf("Enter Numbers:\n");
input=(int *)malloc(size * sizeof(int));
for(;i<size;i++)
{
scanf("%d",input+i);
}
large=largest(input);
printf("Largest element is:%d, ",large);
small=smallest(input);
printf("Smallest element is:%d\n",small);
}
当我将大小传递给函数时,程序运行正常。
int largest(int *input,int size)
{
int i=0,large=0;
for(;i<size;i++)
{
if(input[i]>large)
large=input[i];
}
return large;
}
通过实现上述功能
我不知道这里发生了什么。请帮我找到解决方案。
答案 0 :(得分:0)
以下是解决方案:
#include<stdio.h>
main(){
int count, i, j, k;
float all_number[15],temp;
printf("\n Enter the number of input : ");
scanf("%d",&count);
for(i=0;i< count;i++){
printf("\n Enter %d element : ",i);
scanf("%f",&all_number[i]);
}
for(j=0; j<count ; j++){
for(k = j+1; k <count; k++){
if(all_number[j] > all_number[k]){
temp = all_number[j];
all_number[j] = all_number[k];
all_number[k] = temp;
}
}
}
printf("\n lowest %d element : %f",i,all_number[0]);
printf("\n highest%d element : %f",i,all_number[count]);
}