本文目錄一覽:
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;
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/152658.html