#include <cstdio>
int main(){
int a;
long long b;
unsigned long long c;
char s[100];
double d;
scanf("%d-%lld-%llu %s %lf",
&a, &b, &c, s, &d);
printf("%10d\n", a);
printf("%10lld\n", b);
printf("%10llu\n", c);
printf("%10s\n", s);
printf("%10f\n", d);
}
// input
1-2-3 abc 7.122
//output
1
2
3
abcd
7.122000
符號 | 內容 | 範例 |
---|---|---|
%i %d | 整數 | -7122 |
%u | 無號整數 | 7122 |
%f | 浮點數 | 71.22 |
%e %E | 科學記號(E是大寫) | 7.122e+4 / 7.122E+4 |
%c | 字元 |
J |
%s | 字串 | JIXX |
%% | %字元 | % |
#include <stdio.h>
int main(){
char s [256];
gets(s);
puts(s);
}
//input
1 2 3 4 5 6 7 8 9 10 11
//output
1 2 3 4 5 6 7 8 9 10 11
#include <stdio.h>
int main(){
char s [256];
fgets(s, 256, stdin);
fputs(s, stdout);
}
為了防止溢位
現代人都應該改用fgets!!!
#include <stdio.h>
int main(){
char c;
c = getchar();
putchar(c);
}
template <class T>
bool input(T& a){
a=(T)0;
register char p;
while ((p = getchar()) < '-')
if (p==0 || p==EOF) return false;
if (p == '-')
while ((p = getchar()) >= '0') a = a*10 - (p^'0');
else {
a = p ^ '0';
while ((p = getchar()) >= '0') a = a*10 + (p^'0');
}
return true;
}
template<typename T, typename ...Args>
inline bool input(T &x, Args &...args){
return input(x)&&input(args...);
}
char readchar(){
static const int bufsize = 1<<16;
static char buf[bufsize], *p=buf, *e=buf;
return (p==e &&
(e=(p=b)+fread(buf,1,bufsize,stdin),p==e)?0:*p++);
}
#include <iostream>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
int n;
cin >> n;
cout << n << endl;
return 0;
}
cin/cout 由編譯器幫你判斷型別,省去判斷型別的時間和麻煩
#include <iostream>
#include <string>
int main ()
{
std::string name;
std::cout << "Please, enter your name: ";
std::getline(std::cin, name);
std::cout << "Hello, " << name << "!\n";
return 0;
}
#include <iostream>
int main () {
char name[256],;
std::cout << "Please, enter your name: ";
std::cin.getline (name,256);
std::cout << "Hello, " << name << "!\n";
return 0;
}
int main(){
int t;
scanf("%d",&t);
while(t--){
solve();
}
}
int main(){
int t;
cin>>t;
while(t--){
solve();
}
}
int main(){
while ( scanf("%d",&n) && n!=0 ){
solve(n);
}
}
int main(){
while ( cin>>n && n!=0 ){
solve(n);
}
}
int main(){
while ( ~scanf("%d %d %d", &a, &b ,&c) ){
solve(a,b,c);
}
}
int main(){
while ( cin>>a>>b>>c ){
solve(a,b,c);
}
}
#include <cstdio>
#include <cstring>
int main(){
char s[256];
while ( fgets(s,256,stdin) != NULL ){
char *ptr = strtok(s," \n");
int cnt=0, a;
do{
sscanf(ptr, "%d", &a)
cnt++;
ptr = strtok(NULL," \n");
}while (ptr!=NULL);
printf("%d\n",cnt);
}
}
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main(){
string s;
while(getline(cin, s)){
stringstream ss(s);
int cnt=0, a;
while(ss>>a)cnt++;
cout<<cnt<<endl;
}
}
#include <cstdio>
int main(){
float pi = 3.1415926;
printf("%.3f\n", pi); //3.142
}
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
float pi = 3.1415926;
cout<<fixed<<setprecision(3);
cout<<pi<<endl; //3.142
}
#include <cstdio>
int main(){
int n = 7122;
printf("%05d\n", n); //07122
}
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
int n = 7122;
cout<<setfill('0');
cout<<setw(5)<<n<<endl; //07122
}
偷偷告訴你,現在電腦一般來說一秒可以跑 5*10^8
有些10^7、有些10^9
#include <stdio.h>
const int INF = 1<<29;
bool ok(int x){
if (x>=100)return 1;
else return 0;
}
int main(){
int l=0, r=INF;
while (l!=r){
int mid = (l+r)/2;
if ( ok(mid) )r=mid;
else l=mid+1;
}
printf("%d\n",l);
}
尋找一個數字(以100為例)
(雖然實作時好像都是讓最重的沉下去)
int bubble_sort(int a[], int n){
for (int i=0; i<n ;i++){
for (int j=0; j<n-1; j++){
if (a[j] > a[j+1]) swap(a[j],a[j+1]);
}
}
}
int selection_sort(int a[], int n){
for (int i=0; i<n; i++){
for (int j=i+1; j<n; j++){
if (a[i] > a[j]) swap(a[i],a[j]);
}
}
}
(平常我整理書櫃都用這個方法XD)
int insertion_sort(int a[], int n){
for (int i=0; i<n; i++){
for (int j=i; j>0; j--){
if (a[j-1] > a[j]) swap(a[j-1],a[j]);
else break;
}
}
}
void quick_sort(int l, int r, int a[]){
if (l>=r) return;
int p = l;
for (int i=l+1; i<=r; i++){
if (a[i] < a[p]) swap(a[++p], a[i]);
}
swap(a[l], a[p]);
quick_sort(l,p-1,a);
quick_sort(p+1,r,a);
}
void merge_sort(int l, int r, int a[], int tmp[]){
if (l>=r) return;
int mid = (l+r)/2;
merge_sort(l,mid,a,tmp);
merge_sort(mid+1,r,a,tmp);
int p=mid+1, q=l;
for(int i=l; i<=mid; i++){
while(p<=r && a[i]>a[p])tmp[q++] = a[p++];
tmp[q++] = a[i];
}
while(p<=r)tmp[q++] = a[p++];
for(int i=l; i<=r; i++)a[i] = tmp[i];
}
時間為 N*O(NlgN) = O(N lgN)
void heap_sort(int a[], int n){
for(int i=0; i<n; i++){
int w=i;
while(w>0){
if(a[(w-1)/2]<a[w])std::swap(a[(w-1)/2],a[w]);
w/=2;
}
}
for (int m=n-1; m>0; m--){
std::swap(a[0],a[m]);
int w=0;
while (1){
int tw=w;
if (w*2+1<m && a[w*2+1]>a[tw])tw=w*2+1;
if (w*2+2<m && a[w*2+2]>a[tw])tw=w*2+2;
if (tw==w)break;
std::swap(a[w],a[tw]);
w=tw;
}
}
}