本文目录一览:
c语言输出奇怪的一长串数字怎么办
printf语句中把sum前面的去掉。
只有scanf的时候需要加这个。
C语言中 什么是"magic number"
magic number有如下四种解释:
使用#define 定义的常量
在算法中以非显式的方式保存了关键信息的数字。(典型例子是哈希函数)
在文件头特定位置存放的表示文件类型的数据。
导致边界条件的输入。(例如Y2K问题)
第四种情况,所遇不多,在这里不加赘述。以下主要结合我在实际应用中遇到的一些例子来对前三种情况加以阐述。第一种情况最为普遍。以Linux内核代码为例,大量的头文件中,使用#define定义的常量随处可见。摘录一段代码供大家参考。
中文一般翻译为 魔数,或幻数
不好意思,我也是从百度搜来的
说一下我的理解吧,如#defind PI 3.14
PI就是magic numer
用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;
}
}
void 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的时候是没有存入数的,所以输出不对
这样就好了:
#includestdio.h
int main()
{
int a,i,s;
int b[5];
scanf("%d",a);
for(i=0;i5;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;
}