c语言不明数字,c语言不是数字怎么表示

发布时间:2022-11-27

本文目录一览:

  1. c语言输出奇怪的一长串数字怎么办
  2. C语言中 什么是"magic number"
  3. 用C语言实现从键盘上输入不确定个数的数字,将数字从小到大排序后输出
  4. C语言输出结果是一串很奇怪的数字

c语言输出奇怪的一长串数字怎么办

printf语句中把sum前面的去掉。 只有scanf的时候需要加这个。

C语言中 什么是"magic number"

magic number有如下四种解释:

  • 使用#define定义的常量
  • 在算法中以非显式的方式保存了关键信息的数字。(典型例子是哈希函数)
  • 在文件头特定位置存放的表示文件类型的数据。
  • 导致边界条件的输入。(例如Y2K问题) 第四种情况,所遇不多,在这里不加赘述。以下主要结合我在实际应用中遇到的一些例子来对前三种情况加以阐述。第一种情况最为普遍。以Linux内核代码为例,大量的头文件中,使用#define定义的常量随处可见。摘录一段代码供大家参考。 中文一般翻译为 魔数,或幻数 不好意思,我也是从百度搜来的 说一下我的理解吧,如#define PI 3.14 PI就是magic number

用C语言实现从键盘上输入不确定个数的数字,将数字从小到大排序后输出

对于输入的数据的个数不确定的情况,一般会预设一个特殊的非法值(这个值是属于论域之外的一个值)作为终止值,例如如果论域是正整数,则通常会将0作为终止值,即当输入0时结束,且0不作为有效数据。 因此如果你要输入的都是正整数,则程序可如下(对于其它情况可采用类似方法)

#include <stdio.h>
void Sort(int *s, int left, int right)
{
    int i, j, min, tmp;
    for(i = left; i < right; i++)
    {
        for(min = i, j = i + 1; j <= right; j++)
            if(s[j] < s[min])  min = j;
        if(min != i) tmp = s[i], s[i] = s[min], s[min] = tmp;
    }
}
int main()
{
    int i, s[1000], length = 0, data;
    scanf("%d", &data);
    while(data > 0)
    {
        s[length++] = data;
        scanf("%d", &data);
    }
    Sort(s, 0, length - 1);
    for(i = 0; i < length; i++)
        printf("%-4d", s[i]);
}

运行结果:

C语言输出结果是一串很奇怪的数字

这些奇怪的数字是地址,因为按你这个程序走,应该是顺序输出b[4],b[3],b[2],b[1],b[0],但是b[4]b[3]在你输入567的时候是没有存入数的,所以输出不对 这样就好了:

#include<stdio.h>
int main()
{
    int a,i,s;
    int b[5];
    scanf("%d",&a);
    for(i=0;i<5;i++)
    {
        b[i]=a%10;
        a=a/10;
        if(a==0) break;
    }
    printf("%d\n",i+1);
    s=i;
    for(;s>=0;s--)
        printf("%d",b[s]);
    printf("\n");
    return 0;
}