printf-c语言从键盘上输入10个数,找到最小数,输出与其相邻的数。

问题描述

c语言从键盘上输入10个数,找到最小数,输出与其相邻的数。

从键盘上输入10个数,找到最小数,输出与其相邻的数。

 #include<stdio.h>
void min(double a[10])
{int i,index;
double min=a[0];
for(i=0;i<10;i++)
if(min<a[0]){min=a[i];
index=i;}
printf("%f &f",a[index-1],a[index+1]);
}
void main()
{double a[10];
for(int i=0;i<10;i++)
scanf("%lf",&a[i]);
min(a);
}

为啥无法输出结果?
main.c:8:Bounds error: attempt to reference an illegal pointer.
main.c:8: Pointer value: 0xbef8ed98

解决方案

 #include<stdio.h>
void min(double *a)
{

    int i;
    //注意这里index赋初值
    int index = 0;
    double min = a[0];
    for(i=0;i<10;i++)
        if(min<a[0]){
            min=a[i];
            index=i;
        }
    //判断边界
    if(index == 0){
        printf("%lf",a[index+1]);
    }else if(index == 9){
        printf("%lf",a[index-1]);
    }else{
        printf("%lf %lf",a[index-1],a[index+1]);
    }
}
void main()
{
    double a[10];
    int i ;
    for(i=0;i<10;i++)
        scanf("%lf",&a[i]);

    min(a);
}

解决方案二:

printf写的有问题吧,还有就是要分情况考虑吧

解决方案三:

#include
using namespace std;
int main()
{
int t;
cout<<"test number:"<
cin>>t;
while(t--)
{
int num[10],min=0,lmin=0,rmin=0,index=0;
for(int i=0;i
cin>>num[i];
min=num[0];
for(int i=1;i
{
if(min>num[i])
{min=num[i];
index=i;}
}
if(min==num[0])
cout<
if(min==num[9])
cout
if(index>=1&&index<9)
cout<<num[index-1]<<" "<<num[index]<<" "<<num[index+1]<<endl;
}
return 0;
}

解决方案四:

例7.9 输入10个数,要求输出其中值最大的元素和该数是第几个数。

时间: 2024-11-27 03:09:10

printf-c语言从键盘上输入10个数,找到最小数,输出与其相邻的数。的相关文章

c语言-C填空题:键盘上输入10个整数,程序按降序完成从大到小排序

问题描述 C填空题:键盘上输入10个整数,程序按降序完成从大到小排序 #include void sort(int *p,int *q) { int *max,*s; if(p>q)return; max=p; __ for(s=p+1;s<=q;s++)__ if()max=s; swap(); sort((),q); } void swap(int *x,int *y) { int temp; temp=*x; *x=*y; *y=temp; } void main() { int i,a

c++-从键盘上输入两个正整数,输出它们的最大公约数和最小公倍数用C++实现

问题描述 从键盘上输入两个正整数,输出它们的最大公约数和最小公倍数用C++实现 用C++实现,一早要交作业,急用C++实现,一早要交作业,急用C++实现,一早要交作业,急用C++实现,一早要交作业,急用C++实现,一早要交作业,急用C++实现,一早要交作业,急用C++实现,一早要交作业,急用C++实现,一早要交作业,急用C++实现,一早要交作业,急用C++实现,一早要交作业,急用C++实现,一早要交作业,急用C++实现,一早要交作业,急用C++实现,一早要交作业,急 解决方案 http://ww

number-汇编语言输入10个整数,输出其中最小的奇数。

问题描述 汇编语言输入10个整数,输出其中最小的奇数. 编一程序,从键盘输入10个无符号整数(8位),找出其中最小的奇数并将结果显示出来.没有奇数则显示 NO ODD NUMBER哪位大侠可以教教我这个该怎么做,老师教的完全听不懂QAQ 解决方案 DATAS SEGMENTDATA DB 745865692541876119833;DATA DB 745866662541866169836 ; test odd numberlen equ $ - offset datano_str db 'NO

用汇编语言将十进制数据转换成十六进制数。要求从键盘上输入一个十进制数,然后以十六进制数输出

问题描述 用汇编语言将十进制数据转换成十六进制数.要求从键盘上输入一个十进制数,然后以十六进制数输出 用汇编语言将十进制数据转换成十六进制数.要求从键盘上输入一个十进制数,然后以十六进制数输出,用子程序实现 解决方案 http://www.cnblogs.com/vongang/archive/2011/11/16/2251645.html

求解答-编译没有错误,随便输入10个数之后,为什么“输入元素数是:”后面的就不执行了呢

问题描述 编译没有错误,随便输入10个数之后,为什么"输入元素数是:"后面的就不执行了呢 { Console.WriteLine("请输入数组中的10个元素数:"); int[] a=new int[10]; for (int i = 0; i < a.Length; i++) { a[i] = int.Parse(Console.ReadLine()); } Console.WriteLine("输入的元素数是:"); for (int

排序 函数-编写程序,从键盘输入10个int类型数,按从小到大顺序进行排序,然后输出

问题描述 编写程序,从键盘输入10个int类型数,按从小到大顺序进行排序,然后输出 编写程序,从键盘输入10个int类型数,按从小到大顺序进行排序,然后输出.要求用函数sort()进行排序, 用函数input()输入数据,用函数output()输出数据. (1) 主函数定义数组a[N],N定义为10 (2) 函数声名: (3) 主函数调用函数实现程序功能. (4) 函数定义 解决方案 下面的代码考虑输入的是否是整数 #include<stdio.h> #define N 10 void inp

using-输入10个整数,将其中最小的数与第一个数交换,把最大的数与最后一个数交换。用指针实现,但是程序崩溃了

问题描述 输入10个整数,将其中最小的数与第一个数交换,把最大的数与最后一个数交换.用指针实现,但是程序崩溃了 #include #include /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main() { int a[10],i, p, *q, *n; printf("请输入十个数n"); for

c语言-问题:输入一个错位后的字符串,输出打字员本来想打出的句子。(将输入的字母在键盘上左移一位)

问题描述 问题:输入一个错位后的字符串,输出打字员本来想打出的句子.(将输入的字母在键盘上左移一位) #include char *s = "1234567890-=QWERTYUIOP[]ASDFGHJKL;'ZXCVBNM,./"; int main() { int i, c; while ((c = getchar()) != EOF) { for (i = 1; s[i] && s[i] != c; i++); { if (s[i]) putchar(s[i -

c语言-C填空题:从键盘输入一个十六进制字符串,将其转换为十进制数

问题描述 C填空题:从键盘输入一个十六进制字符串,将其转换为十进制数 #include int change(char *s) { int sum=0; while(*s) { if(*s>='a'&&*s<='z') sum=(); else if(*s>='A'&&*s<='Z') sum=(); else if(*s>='0'&&*s<='9') sum=(); (); } return sum; } void ma