求一道C语言题的代码
#include<stdio.h>
void main()
{
int a[10],i;
int max,min,c=0,b=0;
printf("Input 10 numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
max=min=a[0];
for(i=1;i<10;i++)
{
if(a[i]>max)
{
max=a[i];
b=i;
}
if(a[i]<min)
{
min=a[i];
c=i;
}
}
printf("max number:%d",max);
printf("下标为:%d\n",b);
printf("min number:%d",min);
printf("下标为:%d\n",c);
}
这是我自己写的代码,不完整的,求修补 展开
/*先从键盘上输入10个整数存放在一个数组内,然后找出其最大值和最小值以及它们的下标值。
若最大值不止一个的话,
相同的最大值的所有下标都输出。有相同的数及其下标也要输出 */
#include<stdio.h>
void main()
{
int a[10],i;
int max,min,c=0,b=0;
printf("Input 10 numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
max=min=a[0];
for(i=0;i<10;i++)
{
if(a[i]>=max)
{ max=a[i]; b=i; }
if(a[i]<min)
{ min=a[i];c=i; }
for( int j=i+1;j<10;j++)
{
if(a[i]==a[j])
printf("a[%d]=a[%d]=%d\n",i,j,a[i]);
}
}
printf("max number:%d",max);
printf("下标为:%d\n",b);
printf("min number:%d",min);
printf("下标为:%d\n",c);
}
你看可以不
#include<stdio.h>
void main()
{
int a[10],i;
int max,min,c=0,b=0;
printf("Input 10 numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
max=min=a[0];
for(i=1;i<10;i++)
{
if(a[i]>max)
{
max=a[i];
//b=i;
}
if(a[i]<min)
{
min=a[i];
//c=i;
}
}
//再用for循环找出最大最小值的位置
for(i=0;i<10;i++)
{
if(a[i]==max)
{
printf("max number:%d 下标为%d\n",max,i);
}
}
for(i=0;i<10;i++)
{
if(a[i]==min)
{
printf("min number:%d 下标为%d\n",min,i);
}
}
// printf("max number:%d",max);
// printf("下标为:%d\n",b);
//printf("min number:%d",min);
//printf("下标为:%d\n",c);
}
#include<stdio.h>
int main()
{
int a[10],i;
int max,min,c=0,b=0;
printf("Input 10 numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
max=min=a[0];
for(i=1;i<10;i++)
{
if(a[i]>max)
{
max=a[i];
b=i;
}
if(a[i]<min)
{
min=a[i];c=i;
}
}
printf("max number:%d",max);
for(int i = 0; i < 10;i++)
if(a[i] == max)
printf("最大的下标为:%d\n\n",i);
printf("min number:%d",min);
for(int i = 0; i < 10;i++)
if(a[i] == min)
printf("最小的下标为:%d\n\n",i);
for(int i = 0 ; i < 10 ; i++)
for(int t = 0 ; t < 10; t++)
if(a[i] == a[t] && i!=t)
printf("相同的%d:下标 %d 下标 %d\n\n",a[i],i,t);
return 0;
}
测试结果:
[admin@njgxserver02 ~]$ ./a.out
Input 10 numbers:
33
44
55
1
1
1
12
3
1
43
max number:55最大的下标为:2
min number:1最小的下标为:3最小的下标为:4最小的下标为:5最小的下标为:8
相同的1:下标13 下标24
相同的1:下标13 下标25
相同的1:下标13 下标28
相同的1:下标14 下标25
相同的1:下标14 下标28
相同的1:下标15 下标28
int main()
{
int a[10],i,MIN[10],MAX[10],maxnum=0,minnum=0;
int max,min,c=0,b=0;
printf("Input 10 numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
max=a[0];
min=a[0];
for(i=1;i<10;i++)
{
if(a[i]==max)
MAX[++maxnum]=i;
else if(a[i]>max)
{
maxnum=1;
MAX[1]=i;
max=a[i];
}
if(a[i]==min)
MIN[++minnum]=i;
else if(a[i]<min)
{
minnum=1;
MIN[1]=i;
min=a[i];
}
}
printf("max number:%d",max);
for(i=1;i<=maxnum;i++)
printf("下标为:%d ",b);
printf("\n");
printf("min number:%d",min);
for(int i=1;i<=minnum;i++)
printf("下标为:%d ",c);
return 0;
}