㈠ c語言或者C++中如何把未知數量的輸入數據(譬如整型)存儲的內存中並在後面需要的時候逐個調用
C++裡面用vector容器可以實現
#include<iostream>
#include<vector>
usingnamespacestd;
intmain()
{
vector<int>vec;
inttemp;
while(cin>>temp)//Ctrl+z結束輸入
{
vec.push_back(temp);
}
for(size_ti=0;i<vec.size();i++)//簡單的調用,輸出
cout<<vec[i]<<"";
cout<<endl;
}
㈡ c語言里怎樣輸入未知個數的的數據是輸入整形,每次輸入的數都是隨機的(個數和大小都不確定)
沒有代碼,我只提供基本的思想,給lz
你可以自己寫一個函數,初始化一個整型數組,然後每次數據量大於這個數組容量時,在擴容
偽代碼如下:
1.初始化一個10位的整型數組 int[],i=0,size=10
2.輸入時判斷i<=size int[i]=input
3.如果i>size
4.新建一個int[size+5]的數組,並將前面的數據到這個新數組中
5.重復步驟2
㈢ c語言 讀入未知行 未知個數的整數
單純地讀入未知行和未知個數,那就只能在while循環里實現了。
每行的每個數放入數組里(大小加大點),或者每次動態申請內存(這樣節省空間)來存放。
這樣要結束的話需要有結束的標志。
一般都是設置兩個個宏來定義一個數值,一個用來記錄行數,一個用來記錄列數,數組變數的大小就可以由這兩個宏來確定了,方便初始化。
㈣ C語言中如何給一個數組輸入一組總數未知的數
#include<stdio.h>
#include<ctype.h>
int main()
{
int a[1000];
char c;
int i=0;
int n=0;
while((c=getchar())!=' ')
{
if(isdigit(c))
{
ungetc(c,stdin);//將c送回輸入流
scanf("%d",&a[n++]);
}
}
for(i=0;i<n;i++)
{
printf("%d",a<i>);
}
return 0;
}
(4)c語言未知數據怎麼輸入擴展閱讀:
printf()函數的用法
1.printf()函數的調用格式為:printf("<格式化字元串>",<參量表>);
//__stdcall
int __cdecl printf(const char*p,...);
...可變參數
printf在列印浮點數,不論原來是雙精度還是單精度,都變為雙精度(8位元組)
列印1位元組(char)2位元組(short)4位元組(int)==>4位元組,除了long long(8位元組)
void main()
{
int a=10;
folat ft=12.25f;
printf("%d%d ",a,ft);
}
%d格式控制符--不具有強轉能力
A格式化字元串包括兩部分內容:
一部分是正常字元,這些字元將按原樣輸出;
另一部分是格式化規定字元,以"%"開始,後跟一個或幾個規定字元,用來確定輸出內容格式。
1.d/i有符號十進制形式輸出(正數不輸出符號)
2.u無符號十進制形式輸出
3.o無符號八進制形式輸出(不輸出前綴0)
4.x無符號十六進制形式輸出(不輸出前綴Ox),並以小寫abcdef表示。
5.X無符號十六進制形式輸出(不輸出前綴Ox),並以大寫ABCDEF表示。
6.c輸出單個字元
7.s輸出字元串
8.f以小數形式輸出單、雙精度實數
9.E/e用科學計數法表示浮點數
10.G/g以%f或%e中較短的輸出寬度輸出單、雙精度實數
+++++++++
void main()
{
long long x=0x12345678901357;
printf("%x ",x);//=>78 90 13 57
printf("%lx ",x);//=>78 90 13 57
printf("%llx ",x);//=>12345678901357
}
B參量表
需要輸出的一系列參數,其個數必須與格式化字元串所說明的輸出參數個數一樣多,各參數之間用","分開,且順序一一對應
例題:
void main()
{
char a=128;
printf("%d ",a);//=>-128
printf("%x ",a);//=>ffff ff80
}
當printf調用,a給可變參數,自然而然擴展為4位元組,a是有符號數,擴展的時候加符號位
1111 1111 1111 1111 1111 1000 0000=>ffff ff80
unsigned char a=128;
printf("%x ",a);==>80
㈤ C語言中如何控制未知長度的數組的輸入
方法一:每輸入一次,都詢問是否繼續輸入
while(1)
{
scanf("%d",&a[i]);
printf("是否繼續?(Y/N)");
c=getchar();
if(c=='Y'||c=='y')continue;
else break;
}
這種方法比較笨
方法二:規定輸入的范圍,例如要輸入的是正整數,那麼可以檢測輸入的是否合法,如果輸入了負數就結束循環
while(scanf("%d",&a[i])==1&&a[i]>0)
{
continue;
}
方法很多,依據不用程序的不同任務可以有不同的辦法。
㈥ c++,輸入一個未知大小的數組怎麼做 要求有回答範例。。。
如下參考:
1.首先,定義一個常量大小來控制數組的大小。
㈦ C語言中逐個獲取輸入的未知個數數據的常用方法是什麼
1 折中方法,可以在輸入前列印規則,比如說「每個數據用逗號分隔」、「每個數據用?分隔」;
2 如果一定要用空格的話,可以用gets函數來接收輸入的字元串
格式:gets(字元數組名);功能:gets函數用於將輸入的字元串內容存放到指定的字元數組中,輸入結尾的換行符'\n'被換成'\0'存儲在該數組中。
舉例說明如下:
char str[20]; // 定義一個字元數組,大小為20個位元組
gets(str); // 將用戶輸入的字元串(可以包含空格)存儲到字元數組str中,以回車結束輸入printf("%s", str); // 輸出用戶輸入的字元串(包含空格)
註:使用gets函數時,需將頭文件#include<stdio.h>包含到源文件中。
然後遍歷str數組,遇到空格就分詞
㈧ c語言 中輸入一組數量未知數據怎麼表示
你好!!
可以按照下面的方法實現:
chara[100];
scanf("%s",&a);
或
chara[100];
gets(a);
㈨ C語言怎麼輸入未知元素個數的數集
數組下標是從0開始的,如果要輸入16個元素就應該開a[
16
]
int
a[
16
],
i;
for
(
i
=
0;
i
<
16;
i++
)
scanf("%d",
&a[
i
]);
每敲一個元素按一次回車或者空一個格都可以。