c语言怎么写出:“输入一个正整数n,再输入n个整数,输出最小值,及它的位置”的代码 - 爱问答

(爱问答)

c语言怎么写出:“输入一个正整数n,再输入n个整数,输出最小值,及它的位置”的代码

#include <stdio.h>#include <malloc.h>#include <string.h>#define ssAdd 10//内存每次扩充大小 默认10个字符 //存储任意位数的整数,只接收数字输入,如夹杂非数字字符,将被过滤char *saveNum(char *str,char c);//参数1:存储位置的首地址;参数2:要存储的数字字符; //查找数字字符串数组中,最小的整数,返回最小整数所在的序列值int findMin(char *num[],int n);//参数1:数字字符串数组   参数2:数字字符串个数 int maxSize;//当前最大存储空间大小(字符数 不算结束符号)int main(){    int n,i,minindex;    printf("请输入n的值:");    scanf("%d",&n);    getchar();    char *num[n],c;    for(i=0;i<n;i++)    {        printf("请输入第%d个整数(回车确认):",i+1);        maxSize=ssAdd;        num[i]=(char *)malloc(sizeof(char)*(ssAdd+1));//初始化存储大小        memset(num[i],0,ssAdd+1);        while(1)        {            c=getchar();            if(c==' ')                break;            if(c>='0' && c<='9')//输入的是数字才存储,不是数字直接跳过                num[i]=saveNum(num[i],c);        }    }    for(i=0;i<n;i++)    {        printf("%s ",num[i]);    }     minindex=findMin(num,n);    printf("最小值:%s",num[minIndex]);    return 0;}int findMin(char *num[],int n){    int minlen,len,i,j,index;    minlen=len=strlen(num[0]);    index=0;    for(i=1;i<n;i++)    {        len=strlen(num[i]);        if(len<minlen)//先比较数字长度        {            minlen=len;            index=i;        }        else if(len==minlen)//长度相等 从最高位开始比较数值        {            for(j=0;j<len;j++)            {                if((num[i][j]-'0')<(num[index][j]-'0'))                {                    minlen=len;                    index=i;                    break;                }            }        }    }    return index;} char *saveNum(char *str,char c){    int len;    char *strSave=NULL;    len=strlen(str);    if(maxSize-len<=0)//存储空间不够,先扩充存储空间后再存储    {        strSave=str;        maxSize=maxSize+ssAdd;        str=(char *)malloc(sizeof(char)*(maxSize+1));//扩展新空间        memset(str,0,maxSize+1);        strcpy(str,strSave);        free(strSave);//释放原空间        strSave=NULL;    }    str[len]=c;//存储输入值    return str;}


1.用scanf输入n

2.用for循环,循环n次,每次用scanf输入一个数到数组

3.另写一个找出最小值的函数,用for循环很容易实现,找出数组中的最小值及第几个

4.输出

相关标签:c语言

下一篇:有没有啥办法防止挖掘机被盗电脑板和油?

上一篇:精英IC780M-A2(ATIRX780/RX790芯片组)主板,支持速龙940吗?

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?