Re: [問題] 如何得知一串數字由幾個數字組成

作者: RealJack   2014-06-21 01:17:35
因為你的輸入剛好是整數
我打了一個方法,湊巧可以解決這個問題
或許和你的想法有點偏離,不過還是可以參考一下
#include <stdio.h>
#include <math.h>
int main()
{
int num,size;
printf("Enter a number >0:");
scanf("%d",&num);
size=log10(num)+1;
char s[size]; //C99允許array的size到執行期再決定,
array必須非全域或非static
sprintf(s,"%d",num); //int convert to c-string
printf("有%d個數字為%s\n",size,s);
return 0;
}
※ 引述《GoodmanYY (GOgoHigher)》之銘言:
: 開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
: DEV C++
: 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
: 問題(Question):
: 問題:使用一個會隨使用者所輸入的數字字元個數而改變大小的字元陣列
: 使用者輸入最少一個,最多六個數字(範圍0~999999)
: 假如輸入5的話,陣列裡面有一個元素為5
: 假如輸入555的話,陣列裡面有三個元素為555
: 假如輸入555555的話,陣列裡面有六個元素為555555
: 不想預先配置陣列大小
: 想使用動態配置記憶體字元陣列大小下手
: 但是卻打不出關鍵程式碼
: 餵入的資料(Input):
: 1).5
: 2).55
: 3).555
: 預期的正確結果(Expected Output):
: 1).有1個數字為5
: 2).有3個數字為555
: 3).有6個數字為555555
: 錯誤結果(Wrong Output):
: 程式碼(Code):(請善用置底文網頁, 記得排版)
: #include <stdio.h>
: #include <stdlib.h>
: int main()
: {
: int *digptr;
: char dig[?]; //不知問號該填什麼
: printf("請輸入數字:");
: scanf("%c", &dig); //輸入數字並放在dig陣列裡面
: digptr = (char *) malloc( ? * sizeof(char) );
: printf("有%d個數字為%c\n", ,dig);
: system("pause");
: return 0;
: }
: *****補充說明:*****
: char[?]和malloc的問號是我不知該如何下手
: 因為卡在不知道該如何得知會輸入幾個數字個數
: 問題可能對大家來說很淺,但是我想破頭還是不知該如何實現
: 請各位提點一下謝謝。
作者: GoodmanYY (GOgoHigher)   2014-06-22 15:44:00
謝謝你熱心地回答~小弟我先研究看看

Links booklink

Contact Us: admin [ a t ] ucptt.com