excise2
文章目錄
- 1.轉義字符\t在使用時占幾個空格?并回答當使用printf輸出時要想\t占三個空格其前面字符應該占幾位?
- 2.strcmp 函數有幾種返回值?并回答其具體實現原理。并編寫一個簡單的使用strcmp函數的c/c++代碼。
- 3.N個人圍成一圈,從第一個人開始報數,報到m的人出圈,剩下的人繼續從1開始報數,報到m的人出圈;如此往復,直到所有人出圈。(模擬此過程,輸出出圈的人的序號)
1.轉義字符\t在使用時占幾個空格?并回答當使用printf輸出時要想\t占三個空格其前面字符應該占幾位?
令num=|n-8|%8
n表示\t前面的字符占的位置(前面的字符也可能是轉換說明,如%d,%10d等)
\t對應的空格的個數spaceNum,有
2.strcmp 函數有幾種返回值?并回答其具體實現原理。并編寫一個簡單的使用strcmp函數的c/c++代碼。
格式: strcmp(字符數組名1,字符數組名2)
功能:按照ASCII碼順序比較兩個數組中的字符串,并由函數返回值返回比較結果。
字符串1=字符串2,返回值=0;
字符串2〉字符串2,返回值〉0;
字符串1〈字符串2,返回值〈0。
本函數也可用于比較兩個字符串常量,或比較數組和字符串常量。
#include<iostream> using namespace std; int main(){int Strcmp( char * p1, char * p2);char s1[100];char s2[100];cout<<"請輸入第一個字符s1:\n";cin>>s1;cout<<"\n請輸入第二個字符s2:\n";cin>>s2; int r;r=Strcmp(s1,s2);cout<<"\n\n"<<s1;if(r==0){cout<<" = ";}else if(r>0){cout<<" > "; }else if(r<0){cout<<" < ";} cout<<s2<<"\n"<<endl;cout<<""<<r<<"\n"<<endl;return 0; }int Strcmp( char *p1 ,char * p2){char k;int i=0;int r;while(1){if(*(p1+i)!=*(p2+i)){r=int(*(p1+i))-int(*(p2+i));return(r);break;}i++;} }3.N個人圍成一圈,從第一個人開始報數,報到m的人出圈,剩下的人繼續從1開始報數,報到m的人出圈;如此往復,直到所有人出圈。(模擬此過程,輸出出圈的人的序號)
#include <iostream> using namespace std;int main() {int a[100];int m, n;cout << "請輸入總人數n: \n";cin >> n;cout << "請輸入報到m出圈的m值: \n";cin >> m;for (int i = 0; i < n; i++) // 初始化為1{a[i] = 1; //a[i]=1代表游戲中}int k = n; //結束條件int c = 0; //數數int i = 0;while (k > 1){if (a[i] != 0) //沒出局的時候{c++;}if (c == m) //出局{c = 0;a[i] = 0; k--;cout << i + 1 << "出局" << endl;}i++;if (i == n) //i到數組尾,循環繼續報數{i = 0;}}for (i = 0; i < n; i++){if (a[i] == 1){cout << i + 1 << "勝利" << endl;}}return 0; }總結
- 上一篇: 日历和日期-算法
- 下一篇: 《算法》学习笔记2.1 初级排序算法