c语言编程题从键盘中输入6个整数存到数组中,输出其最小值和它所对应的下标

如题所述

#include <stdio.h>

#define SIZE 6

void main( void )

{

    int num[SIZE];

    int i, Min, MinPos;

    printf("Enter 6 integers:");

    for(i=0; i<SIZE;  i++)

         scanf("%d",&num[i]);

    Min=num[0];

    MinPos= 0;

    for(i=1; i<SIZE; i++)

         if( Min > num[i] )

         {

              Min=num[i];

              MinPos=i;

         }

    printf("Min value is %d\n", Min);

    printf("It’s positionis %d\n", MinPos+1);

}

注:如果要打印最小数所在位置时,要记得加1,这才是正常位置(c语言数组下标从0开始)。

程序运行结果如下:

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-01-04
    int a[6];
    int n=6;  //数组长度为20 
    int min=0,i=0;
    for(i=0;i<n;i++){
        scanf("%d",&a[i]);
    }
    for(i=0;i<n;i++){
        if(a[i]<a[min]){
            min=i;
        }
    }
    printf("最小值为:%d\n最小值的下标为:%d\n",a[min],min);

第2个回答  2014-01-04
这种是排序问题,有很多解法,给你写几个看看吧
PS:这都是我之前写过的代码,可能不是求最小的,不过原理是一样的
1、快速排序:
void exchange( int* a, int i, int j )
{
int exchange = a[ j ];
a[ j ] = a[ i ];
a[ i ] = exchange;
}

int partition( int* a, int p, int r )
{
int x = a[ r ];
int i = p - 1;

for( int j = p; j < r; j++ )
{
if( a[ j ] <= a[ r ] )
{
i = i + 1;
exchange( a, i, j );
}
}

i = i + 1;

exchange( a, i, r );

return i;
}

void quicksort( int* a, int p, int r )
{
if( p < r )
{
int q = partition( a, p , r );
quicksort( a, p, q - 1 );
quicksort( a, q + 1, r );
}
}
最后在main里面调用quicksort就可以了;

2、合并排序法:
#define INF 0x7FFFFFFF

void merge( int A[], int p, int q, int r )
{
int n1 = q - p + 1;
int n2 = r - q;

int *L = new int[n1+1];
int *R = new int[n2+1];

for( int i = 0; i < n1; i++ )
{
L[ i ] = A[ p+i ];
}

for( int j = 0; j < n2; j++ )
{
R[ j ] = A[ q+j+1 ];
}

L[ n1 ] = INF;
R[ n2 ] = INF;

int i = 0;
int j = 0;
int k = p;

for( ; k < r ; k++ )
{
if( L[ i ] < R[ j ] )
{
A[ k ] = L[ i ];
i++;
}
else
{
A[ k ] = R[ j ];
j++;
}
}

if( L[i] == INF )
A[ r ] = R[ j ];
else
A[ r ] = L[ i ];

}

void merge_sort( int A[], int p, int r )
{
if( p < r )
{
int q = ( p + r )/2;
merge_sort( A, p, q );
merge_sort( A, q+1, r );
merge( A, p, q, r );
}
}

int _tmain(int argc, _TCHAR* argv[])
{
int A[] = {5,2,4,7,1,3,2,6};

merge_sort( A, 0 , 7 );

for( int i = 0; i < 8; i++ )
printf("%d\n",A[ i ]);
printf("\n");

return 0;
}
第3个回答  2014-01-04
#include<stdio.h>

void main()
{int sr[6]; //定义输入数组
int i,a,min;
printf("请输入6个不同的数\n");
for(i=0;i<=5;i++)
{printf("请输入第%d个数\t",i+1);
scanf("%d",&sr[i]);
}
for(i=0,a=sr[0];i<=5;i++)
{if(sr[i]<a)
{a=sr[i];
min=i;
}
}
printf("最小为:%d,对应下标为:%d\n",a,min);

}

c语言编程题从键盘中输入6个整数存到数组中,输出其最小值和它所对应的...
} 注:如果要打印最小数所在位置时,要记得加1,这才是正常位置(c语言数组下标从0开始)。程序运行结果如下:

用C语言编写比较六个数大小的程序,要求同时输出最大和最小的数
printf("这六个数中的最大值和最小值分别是: %d %d",max,min);}

c语言 从键盘输入6个整数到数组 求最大数及平均值和并输出
1、首先我们新建一个dev C++的项目。2、接下来在项目中新建C语言程序文件。3、然后在C语言文件中声明一个字节数组。4、接下来我们通过printf函数提示用户输入字符串,通过scanf接收用户输入的字符串。5、接着在通过printf函数输出用户输入的内容。6、最后运行C语言程序,就可以知道内容,我们输入内容以后就...

C语言编程。1)从键盘上输入6个整数放入数组a[6]中(2)并将各元素和平均...
include<iostream> include<fstream> include<string> include<vector> using namespace std;int main(){ int a[6];int i=0,sum=0;int average;cout<<"输入你想输入的六个数"<<endl;while(i<6){ cin>>a[i];sum=sum+a[i];i++;} average=sum\/6;ofstream out("c:\\\\bbb.txt");if(...

c语言 从键盘输入6个整数存入a数组中,编程将其按相反次序存放。_百度知 ...
include<stdio.h> void change(int array[],int n){ int t;for(int i=0;i<n\/2;i++){ t=array[i];array[i]=array[n-i-1];array[n-i-1]=t;} } void main(){ int i,a[6];for(i=0;i<6;i++)scanf("%d",&a[i]);change(a,6);for(i=0;i<6;i++)printf("%d ...

用C语言:定义一个一维数组A,随机输入6个整数
6 void main(){ void maopao(int b);int A[N],B[N],i,j=0;for(i=0;i<N;i++)scanf("%d",&A[i]);\/\/输入6个元素给数组A for(i=0;i<N;i++)if(A[i]>0)B[j++]=A[i];\/\/将正整数按输入的次序存储至B maopao(A);\/\/ 冒泡排序 for(i=0;i<N;i++)printf("%5d"...

C语言怎样用数组把6个整型数按从小到大的顺序输出?
C语言实现将数组的六个元素按从小到大的顺序输出,可以采用内部排序算法对数组的元素进行排序,然后输出排序后的数组,就可以得到按从小到大的顺序输出。以快速排序为例的排序代码:void quickSort(int a[],int l,int r) { if(l>=r)return;int i = l;int j = r;int key = a[l];\/\/选择...

c语言求数组中最大值和最小值及其下标
思路:假定一个数为最大值,如果有个数比假定的最大值还大,那么该数就为最大值。最小值同理。使用for循环。\/ public class MaxMin{ public static void main(String[]args){ int[]array={13,56,45,48,26,55,7,3,9,468,4589,76,4,3,18};\/\/声明数组并赋值 int i=0;int max=array...

c语言输入6个整数,存入整数数组int num【6】 求该数数组中所以整数的总...
include<stdio.h> void main(){ int num[6],u,pingjunshu;int sum=0;printf("请输入整数:");for(u=0;u<6;u++){ scanf("%d",&num[u]);} for(u=0;u<6;u++){ printf("%5d",num[u]);} for(u=0;u<6;u++){ sum=sum+num[u];} printf("\\n");printf("整数总和为...

用c语言编程输入6个整数,然后按输入时的顺序的逆序输出
include<stdio.h>int main(){int a[6],i;for(i = 0;i < 6; i++){scanf("%d",&a[i]);}for(i = 5 ; i>=0;i--){printf("%d ",a[i]);}printf("\\n");return 0;}

相似回答