c++線上編寫程式,常見的輸入資料格式 和本地編譯器輸入的區別
PS:線上程式設計系統的輸入方式和vs輸入方式稍微有點不一樣:所以直接用線上編的程式用vs除錯的時候就有點不同,因為線上程式設計系統會自動判斷資料輸入的結束,而在vs中就需要手動控制輸入的結束。
(1)輸入一行陣列,中間用空格隔開:
例如:輸入 1 2 3 4 5 2 8
線上程式設計就可以這麼寫:
int main()
{
int temp;
vector<int> array;
while (cin >> temp)
{
array.push_back(temp);
}
return 0;
}
在vs編譯器上就要這麼寫:
int main() { int temp; vector<int> array; char c; cin >> temp; array.push_back(temp); while ((c = getchar()) != '\n') { cin >> temp; array.push_back(temp); } return 0; }
需要加入標頭檔案:#include<sstream>
(2) 輸入多行,第一行數字一般表示每行輸入的個數
例如輸入:5 6
1 2 3 4 5
4 5 6 6 7 7
這種情況在vs和線上輸入的情況都是一樣的:
根據題目的要求,可以把每一行數字放入每一個數組中
int main() { int a, b; cin >> a >> b; vector<int> arrayA, arrayB; int temp; for (int i = 0; i < a; i++) { cin >> temp; arrayA.push_back(temp); } for (int i = 0; i < b; i++) { cin >> temp; arrayB.push_back(temp); } return 0; }
也可以放入一個大陣列中:
int main()
{
int a, b;
cin >> a >> b;
vector<int> array;
int temp;
for (int i = 0; i < (a + b); i++)
{
cin >> temp;
array.push_back(temp);
}
return 0;
}
(3) 輸入一個字串存入字元陣列中
輸入:[email protected]@&&abnssdd
因為string型別本來就是一個數組型別: int main() { string array; getline(cin, array);//或者直接cin>>array; 但是在vs編譯器中只能用getline return 0; }
(4) 輸入一行陣列用逗號或其他符號隔開
輸入:
1,2,3,4,3,4,5
方法一:
int main()
{
string line;
getline(cin,line);
vector<int> array;
for (int i = 0; i < line.length(); i++)
{
if (line[i] != ',')
{
int temp = (int)(line[i] - '0');//將char型別轉換成Int
array.push_back(temp);
}
}
return 0;
}
方法二:參考網上
int main()
{
string s;
cin >> s;
vector<int>nums;
char *str = (char *)s.c_str();//string --> char
const char *split = ",";
char *p = strtok(str, split);//逗號分隔依次取出
int a;
while (p != NULL) {
sscanf(p, "%d", &a);//char ---> int
nums.push_back(a);
p = strtok(NULL, split);
}
return 0;
}
這種方法加入標頭檔案:#include "stdio.h"
(5) 輸入多行有字數限制的數字,但是行數未知
1 2 3 3
2 3 4 4
5 6 6 7
3 4 6 7
........
這種情況也需要區分一下:
線上程式設計:
int main()
{
int a, b, c, d;
vector<int> array;
while (cin >> a >> b >> c >> d)
{
array.push_back(a);
array.push_back(b);
array.push_back(c);
array.push_back(d);
}
return 0;
}
Vs編譯器:
根據測試用例,自己定義輸入的條件限制吧,比如測試用例為4行,定義迴圈個數為4;
int main()
{
int a, b, c, d;
vector<int> array;
int num = 4;
while (num--)
{
cin >> a >> b >> c >> d;
array.push_back(a);
array.push_back(b);
array.push_back(c);
array.push_back(d);
}
return 0;
}
(6) 讓迴圈讀取一行數字“1 2 3;4 5 6;7 8 9”
int main()
{
string line;
getline(cin, line);
vector<int> array;
for (int i = 0; i < line.length(); i++)
{
if (line[i] != ' ')
{
if (line[i] == ';')
{
cout << "要不要放入下一個陣列" << endl;
}else{
int temp = (int)(line[i] - '0');//將char型別轉換成Int
array.push_back(temp);
}
}
}
return 0;
}
後序補充。。。。。
相關推薦
c++線上編寫程式,常見的輸入資料格式 和本地編譯器輸入的區別
PS:線上程式設計系統的輸入方式和vs輸入方式稍微有點不一樣:所以直接用線上編的程式用vs除錯的時候就有點不同,因為線上程式設計系統會自動判斷資料輸入的結束,而在vs中就需要手動控制輸入的結束。 (1)輸入一行陣列,中間用空格隔開: 例如:輸入 1 2 3 4 5
使用C語言編寫程式,計算N個整數的和(隨機輸入一個值,例如1到100之間所有整數的和)
第一種方法:使用迴圈 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> int Add(
使用C語言編寫程式,求任意兩個整數的較大值
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #define max(a,b)((a>b?a:b)) int main() {
使用C語言編寫程式,求解有一分數序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個序列的前20項
使用C語言編寫程式,求解有一分數序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個序列的前20項 void test() { //思路:找規律->從3/2開始 下一個數的分
習題 13.1 輸入三角形的三邊a,b,c,計算三角形的面積的公式是。。。編寫程式,輸入a,b,c,檢查a,b,c是否滿足以上條件,如不滿足,由cerr輸出有關出錯資訊。
C++程式設計(第三版) 譚浩強 習題13.1 個人設計 習題 13.1 輸入三角形的三邊a,b,c,計算三角形的面積的公式是 a r
輸入一行字元分別統計出其中英文字母、空格、數字和其他字元的個數。(用c++語言編寫程式)【寫的第1篇部落格,很高興
#include<stdio.h> int main() { char ch; //定義ch為字元型變數 int a=0,b=0,c=0,d=0; //定義a,b,c,d為整型變數並賦初值 while(scanf("%c",&ch),ch!=’\n’) //輸入字元直到c
編寫程式,它從標準輸入讀取c原始碼,並驗證所有的花括號都正確的成對出現
int main() { int ch = 0; int count = 0; while ((ch = getchar()) != EOF)//ctrl z { if (ch == '{') count++; else if (ch
c語言編寫程式“輸入任意一個年份和月份,列印當月日曆。”
日常生活中我們所見到的日曆如圖所示: 程式碼思路: 1. 我們想列印某年某月的日曆,我們就得知道這個月是從星期幾開始,且這個月有多少天。 2. 要想知道這個月是從星期幾開始的,就得知道上一個月的最後一天是星期幾,要想知道上一個月的最後一天是星期幾,就得
編寫程式,輸入一個年份,判斷該年是否是閏年。如果是閏年,輸出“yes”,否則輸出“no”。 將下面的程式填寫完整。
撰寫人——軟工二班——陳喜平 題目描述 編寫程式,輸入一個年份,判斷該年是否是閏年。如果是閏年,輸出“yes”,否則輸出“no”。 將下面的程式填寫完整。 #include <stdio.h> int main() { int y; while (sc
編寫程式,從鍵盤輸入 一個 英文字母(有若干行)。如果是大寫字母,則輸出它對應的小寫字母;如果是小寫字母,則輸出它對應的大寫字母。
撰寫人——軟工二班——陳喜平 題目描述 編寫程式,從鍵盤輸入 一個 英文字母(有若干行)。如果是大寫字母,則輸出它對應的小寫字母;如果是小寫字母,則輸出它對應的大寫字母。 輸入 一個英文字母。(有多組測試資料) 輸出 對應的小寫或者大寫字母,輸出後換行。 樣例輸入 A q 樣例輸
編寫程式,輸入球到半徑,計算並輸出球的體積。圓周率取3.14159。
撰寫人——軟工二班——陳喜平 題目描述 編寫程式,輸入球到半徑,計算並輸出球的體積。圓周率取3.14159。 輸入 球到半徑。 輸出 球的體積。注意:保留3位小數,輸出後換行。 樣例輸入 10 樣例輸出 4188.787 提示 來源 hnldyhy #include<stdio
編寫一個程式,指定一個資料夾,能自動計算出其總容量
package filetest;import java.io.File;import java.io.IOException; public class FileEdit { double size=0.0; //計算檔案或資料夾的大小,單位MB public double getSize(File fi
編寫程式,判斷從鍵盤輸入的字元中數字的個數 大寫字母的個數,小寫字母的個數,其他字元的個數,以*作為字元輸出的標誌
#include <stdio.h> #include <string.h> int main() { char x[1000]; printf("請輸入字串:\n"); gets(x); int l=strlen(x); int a
Python 編寫程式,使用者輸入一個列表和兩個整數作為下標,然後使用切片獲取並輸出列表中結餘兩個下標之間的元素組成的子列表。
編寫程式,使用者輸入一個列表和兩個整數作為下標,然後使用切片獲取並輸出列表中結餘兩個下標之間的元素組成的子列表。例如,使用者輸入 [1,2,3,4,5,6]和2,5,程式輸出[3,4,5] 練習題 2018.10.11 x = int(input("輸入下標下限:"))
C++定義一個複數類Complex,過載運算子“+”,使之能用於複數的加法運算。將運算子函式過載為非成員、非友元的普通函式。編寫程式,求兩個複數之和。
#include <iostream> #include <iomanip> using namespace std; class Complex { public: Complex(); Complex(double r,do
編寫一個應用程式,使用者分別從兩個文字框輸入學術的姓名和分數
package JAVA1; import java.awt.Button; import java.awt.Label; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.
2、編寫程式,從鍵盤上輸入兩個電阻的值,求它們並聯和串連的電阻值,輸出結果保留兩位小數。
#include <stdio.h> int main() { float R1,R2,Rc,Rb; printf("please input R1 R2\n");
編寫程式,對輸入的年、月、日,給出該天是該年的第多少天?
public class TimeOver { public static void mDate(String date){ int dateSum = 0; int year = Integ
編寫程式,判斷輸入的字串是否迴文
import java.util.Scanner; public class WordsTest {public static void main(String[] args) {Scanner reader=new Scanner(System.in);System.o
1、編寫程式,輸入一個四位數,列印輸出其個位數、十位數、百位數和千位數。
上週日遇到一些事情 來不及更新 非常抱歉 #include <stdio.h> int main() { int a,b,c,d,e; printf