用c语言写 一个任意整数的降序数

问题描述

用c语言写 一个任意整数的降序数

#include
#include
int main(void)
{

int j,n;
int i=0;
int a[10];
printf("请输入一个整数: ");
scanf("%d", &n);
while (n > 0)
{
a[i] = n % 10;

n = n / 10;

i++;

}

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

for (j=0;j<10-i-1;j++)
{

if (a[j] < a[j+1])
{

int t=a[j];

a[j]= a[j+1];

a[j+1] = t;

}
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
}

当输入的数不足10位时,不足的位会出现-858993460

请问这个怎么改

解决方案

其实就是因为你没有把数组的后三位给填满,造成的,

你先把这个数组每一位初始化都为0,这样你位数不到10位时候,后面的位数不为null,都为0 ,他就会自动进行排序了

解决方案二:

告诉你一个最简单的方法,不要按照整数接收,直接按照字符串接收,让后strlen得到长度,之后直接对比排序打印就可以了。
你这个的原因就是楼上的说法,他的方法你只要在定义数组的时候改成 a[10] = {0};就可以了。原因是在栈中分配的内存是不会自动清零的。

解决方案三:

一个求任意整数降序数的程序
求任意整数降序数
求整数的降序数

解决方案四:

#include<stdio.h>
#include <stdlib.h>
int n,i,j,length;
char *strs;

int len(n){
    int length = 0;
    while(n>0) {
            n=n/10;
            length++;
     }
    // printf("the nubmer is:%d
",length);

     return length;
     }

     int sort(strs,length){
        char *str = strs;
        str[1] = 0;
         while (n > 0) {
                str[i] = n % 10;
         n = n / 10;
         i++;
         }
         for (i=0; i<length;i++)
            for (j=0;j<length-i-1;j++) {
                if (str[j] < str[j+1]) {
                    int t=str[j];
                     str[j]= str[j+1];
                     str[j+1] = t;
                    }
            }
            return 0;
         }

         int main(){
           //  int len();
             int lens = 0;
             printf("请输入一个整数: ");
             scanf("%d", &n);
             lens = len(n);
          //   printf("%d",lens);
              printf("
");

              strs=(char*)malloc(length*sizeof(char));
             if (NULL == strs)
                    exit (1);
             sort(strs,lens);

             for(i=0;i<lens;i++)
                printf("%d ",strs[i]);
                printf("
");

            return 0;
             }

时间: 2024-08-07 15:17:41

用c语言写 一个任意整数的降序数的相关文章

用C语言写一个小系统,要求登录时,输入密码错误三次后,必须等10分钟才能再次登录。

问题描述 用C语言写一个小系统,要求登录时,输入密码错误三次后,必须等10分钟才能再次登录. 写一个小系统,要求登录时,输入密码错误三次后,必须等10分钟才能再次登录.怎么样实现? 解决方案 第一个循环三次判断,用户登录是否成功. for(i =0 ; i<3; i++){...} if(i >=3){ startTime = currenttime; endTime= currenttime; timespan = endTime - startTme; while(timespan <

c语言-如何用C语言写一个暴力破解SSH的程序

问题描述 如何用C语言写一个暴力破解SSH的程序 也就是用同文件夹里的一个字典,可以用fopen和fgets把密码一条一条打开,可是我不知道怎么在C语言里对一个其他地址进行SSH 求大神解答 解决方案 C语言没有 SSH 的功能,所以需要你去自己搞 SSH 算法. 解决方案二: 参考openssh,这个是开源的,可以用它来调用,连接http://www.openssh.com/

c语言-输入一个十进制整数,依次转换成2到16进制数

问题描述 输入一个十进制整数,依次转换成2到16进制数 求大神帮帮忙做一下 我刚刚学C语言 程序代码 弄了好久都没弄出来 大神帮忙编一个程序代码 ,谢谢了 解决方案 #include <iostream> using namespace std; char metachar[] = "0123456789abcdef"; void tobasen(int x, int n) { if (x > 0) { tobasen(x / n, n); cout <<

log4j-想写一个docx转html的程序但是控制台显示的是这样,并且在html的第一行有警告

问题描述 想写一个docx转html的程序但是控制台显示的是这样,并且在html的第一行有警告 log4j:WARN No appenders could be found for logger (org.docx4j.jaxb.Context). log4j:WARN Please initialize the log4j system properly. 解决方案 实际上这种警告很正常的,网上也有对应消除警告的方法:http://blog.sina.com.cn/s/blog_5f7d1a6

java类的问题-用java 写一个方法,能够判断任意整数是否是素数

问题描述 用java 写一个方法,能够判断任意整数是否是素数 用java代码写一个方法,能够判断任意整数是否是素数......... 解决方案 public class Num{ public static void main(String args[]){ int m; boolean tag=true; System.out.print("Please enter a num:"); try{ m=(int)System.in.read(); for(int i=m-1;i>

求代码 代码-求用C++写任意整数转换成中文大写的代码

问题描述 求用C++写任意整数转换成中文大写的代码 我正在学习C++,才开始不懂怎么写,还没有理清头绪,希望有人能帮我写一下,我好有一个指路灯,谢谢 解决方案 CString ChineseCapitalMoney(double Num) { CString szChMoney,szNum; int iLen, iNum, iAddZero=0; TCHAR* hzUnit[18]={_T("分"),_T("角"),_T("元"),_T(&quo

图片-用c语言写出一个行李托运问题

问题描述 用c语言写出一个行李托运问题 解决方案 请教一个C语言问题关于<c语言的一个小问题>的补充 解决方案二: c语言行李托运问题.

c语言基础-真的很着急,大一学生党,求大神指导写一个c语言拨号程序

问题描述 真的很着急,大一学生党,求大神指导写一个c语言拨号程序 能显示出通讯录中所有人姓名,当选中某个姓名时,屏幕上模拟打字机效果依次显示出此人的电话号码中的各个数字,并伴随相应的拨号声 解决方案 http://zhidao.baidu.com/link?url=svF4fjRTNuBmCJyCiRipzB_21UO5zvNc0hCye7qj8nxOY1lC78667ycDqYnJ7xHiGT00M4NuYqGIak2R5cEU961mjRl1ADLf-Eh1nDKpiBi

c语言-[C语言]求一个算法,输入N个数,输出所有其中任意M个数相加等于定值S的结果

问题描述 [C语言]求一个算法,输入N个数,输出所有其中任意M个数相加等于定值S的结果 如题,比如输入1,,2,10,5,7,8,9,11,输出其中任意几个数相加等于12的结果(不重复), 不自身相加. 1+2+9=12 10+2=12 7+5=12 解决方案 这题如果不考虑优化问题--轮询吧--总共有2的n次方种组合-学过排列组合的都知道