1. c語言中怎樣輸入一個很大的整數
可以利用字元數組來存放整數的各位數值,即將整數當成一串字元來輸入。
如果要輸入12345678901234567890,則定義一個char型數組a[20],將用戶輸入的整數當成一串字元存入字元數組a中。
具體實現方法可以參考如下程序段:
chara[20];
scanf("%s",a);//輸入12345678901234567890,即可將該整數輸入到字元數組a當中
//則數組a中各元素值為a[0]='1',a[1]='2',a[2]='3',.......,a[19]='0'
//在進行運算的時候將字元轉換為數字即可(即a[i]-'0')
2. 在C語言中將一個很大的正整數賦值給一個int類型變數a,輸出a時有時會顯示負值,為何
在不同的C系統中,int有不同的表示範圍。
32位(4位元組)的int,它可以表示的數字范圍是-2147483648~+ 2147483647,共可表示4294967296個不同的數。
這是因為它有點像我們用(每個檔位上只可以表示0~9)的算盤。假如我們的一個算盤有4個檔位,它能表示從0~9999共10000個不同的數字。當我們要把比9999更大的數字存放到算盤上時,走出的部分就「丟失」了。如果要存的數字是12345,按「老規矩」存放完畢後,讀取算盤上的數字時,由於數據發生了丟失,只能讀到2345。這是由於12345-10000=2345。
再來看計算機里的int,如果我們要把2147483648存入到int變數中時,由於超出了范圍,就發生了丟失。讀取時,就變成了2147483648-4294967296=-2147483648了。
其它更大的數字,所變成的負數大小,也是這樣的規律(都是減去了4294967296或它的倍)。
3. c語言編程:輸入一個很大的整數n(n<100),輸出n各位數字之和 ,利用字元串實現
思路:輸入字元串,從字元串的第一個位置開始依次把每個數字字元轉成整數,並計算其累加和。
參考代碼:
#include"stdio.h"
#include"string.h"
intmain(){
chara[100];
inti,sum=0;
gets(a);
for(i=0;a[i]!='