目的是输入n个数,找出并打印最小值,并打印出最小值所在数组元素的位置。
#include <stdio.h>
#include <stdlib.h>
#define n 31
void input (int score []);
int function(int score[]);
int main()
{ int score [n];
input (score);
int pos = function(score) ;
printf("the position of the minimum is %d\n",pos);
return 0;
}
void input (int score [])
{ int i = -1;
do{
i++;
printf("input the score:\n");
scanf("%d",&score[i]);
}while(score[i]>=0);
}
int function(int score[])
{ int min = score[0];
int i = 1;
do{
if(min >score[i])
{
min = score[i];
i++;
}
}while(score[i]!=0);
printf("%d\n",min);
return i;
}
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#define n 31
void input(int score[]);
int function(int score[]);
int main()
{
int score[n];
input(score);
function(score);
return 0;
}
void input(int score[])
{
int i = -1;
do {
i++;
printf("input the score:\n");
scanf("%d", &score[i]);
} while (score[i] >= 0);
}
int function(int score[])
{
int min = score[0];
int i = 1;
do {
if (min > score[i])
{
min = score[i];
i++;
}
} while (score[i] >=0);
printf("%d\n", min);
printf("the position of the minimum is %d\n", i);
return 0;
}
int function(int score[]); 方法中的循环是个死循环,你可以先将倒数第四行的条件改为score[i]!=33,然后这样输入数据 66 55 44 33,这样结果不错
修改如下,供参考:
#include <stdio.h>
#include <stdlib.h>
#define n 31
void input(int score [],int *m);
int function(int score[],int m);
int main()
{
int score[n],m = 0; //修改
input(score, &m);//修改
int pos = function(score,m); //修改
printf("the position of the minimum is %d\n",pos);
system("pause");
return 0;
}
void input (int score [],int *m) //修改
{
int i = -1;
do{
i++;
printf("input the score:\n");
scanf("%d",&score[i]);
}while(score[i] > 0);
*m = i;
}
int function(int score[],int m) //修改
{
int min = score[0];
int i = 0; //修改
do{
if(min >score[i]) //修改
min = score[i];
i++; //修改
}while (i < m);//while(score[i]!=0);//修改
printf("%d\n",min);
return i;
}
改一下吧,少给自己挖坑哦。
#include <stdio.h>
#include <stdlib.h>
#define n 31//数组长度
int count = 0;//当前元素个数
void input(int score[]);
int function(int score[]);
int main()
{
int score[n];
input(score);
int pos = function(score);
printf("the min is %d\n", score[pos]);
printf("the position of the minimum is %d\n", pos);
return 0;
}
void input(int score[])
{
int i = -1;
do {
i++;
printf("input the score:\n");
scanf_s("%d", &score[i]);
count++;
} while (score[i] >= 0&&count<n);//count<n,防止越界
count--;//数组有效数据长度
}
int function(int score[])
{
int min = score[0];
int i = 1,j=0;//j存放最小值下标
while (i<count)
{
if (min > score[i])
{
min = score[i];
j = i;
}
i++;
}
//printf("%d\n", min);
return j;
}