再會,
我對 c 很陌生,并試圖找到一種方法將用戶整數輸入作為單個數字存盤到陣列中。
例如,
用戶輸入:2736
我希望它存盤在陣列中
digits[0] = {2}
digits[1] = {7}
digits[2] = {3}
digits[3] = {6}
我搜索了許多在線討論,但許多解決方案是使用 for 回圈,如果用戶嘗試輸入大量數字(例如 209377383838),則對用戶不友好。
有沒有人有解決方案來存盤輸入,將其分解并將單個數字存盤到陣列中?謝謝您的幫助!
uj5u.com熱心網友回復:
您可以將來自用戶的數字存盤為字串,然后從 ASCII 格式轉換為十進制并將其存盤在您的陣列中:
#include <stdio.h>
#include <string.h>
int main(){
char input[1001];
int arr[1000];
int i;
// Take the number as string
printf("Enter the number: ");
scanf("%s", input);
// Convert ASCII to decimal
for (i = 0; i < strlen(input); i )
{
arr[i] = input[i] - '0';
}
return 0;
}
uj5u.com熱心網友回復:
您可以使用sprintf函式將整數放入字串中。
注1:由于輸入是a long int,則不能超過2,147,483,647。
注意2:使用可能很有趣unsigned long long int,至少包含 [0, 18,446,744,073,709,551,615] 范圍。它是自標準的C99版本以來指定的。
int main()
{
long int num;
scanf("%li",&num);
// Convert number to a string
char snum[20];
sprintf(snum,"%ld", num);
printf("Number as string: %s\n", snum);
return 0;
}
[更新]
如果輸入可以是字串型別,則可以使用該gets函式。
#include <stdio.h>
int main()
{
char snum[20];
gets(snum);
// this loop is just to show the result.
for (int i=0;i<strlen(snum);i ){
printf("digits[-] = {%c} \n", i,snum[i]);
}
return 0;
}
[輸入] 示例:209377383838
[輸出]
digits[ 0] = {2}
digits[ 1] = {0}
digits[ 2] = {9}
digits[ 3] = {3}
digits[ 4] = {7}
digits[ 5] = {7}
digits[ 6] = {3}
digits[ 7] = {8}
digits[ 8] = {3}
digits[ 9] = {8}
digits[10] = {3}
digits[11] = {8}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/335262.html
上一篇:使用整數求牛頓的平方根
