1、字符串最后一個單詞的長度
題目描述
計算字符串最后一個單詞的長度,單詞以空格隔開。
輸入描述:
一行字符串,非空,長度小於5000。
輸出描述:
整數N,最后一個單詞的長度。
示例1
輸出
復制5
代碼:
#include <iostream> #include <string.h> //#include <strsafe.h> #include <stdio.h> #include <cstdio> #define MAX_BUFF_SIZE 5000 int main() { char InputBuff[MAX_BUFF_SIZE] = {0}; //scanf("%s", InputBuff); gets(InputBuff); if(strlen(InputBuff) > 5000) { return 0; } int nLen = strlen(InputBuff); while(InputBuff[nLen - 1] != ' ' && nLen > 0) { nLen--; } //printf("%s", InputBuff + nLen); printf("%d", strlen(InputBuff) - nLen); return 0; }
2、計算字符個數
題目描述
寫出一個程序,接受一個由字母和數字組成的字符串,和一個字符,然后輸出輸入字符串中含有該字符的個數。不區分大小寫。
輸入描述:
第一行輸入一個有字母和數字以及空格組成的字符串,第二行輸入一個字符。
輸出描述:
輸出輸入字符串中含有該字符的個數。
示例1
輸出
復制1
代碼:
#include <iostream> #include <stdio.h> #include <string.h> #define MAX_BUFF 0x500 int main() { char szInput[MAX_BUFF] = {0}; char cInput = 0; int nLen = 0; int nCnt = 0; scanf("%s", szInput); nLen = strlen(szInput) - 1; getchar(); cInput = getchar(); while(nLen >= 0) { if('a' <= szInput[nLen] && szInput[nLen] <= 'z') { if(szInput[nLen] == cInput || szInput[nLen] == cInput - ('A' - 'a')) { nCnt++; } } else if('A' <= szInput[nLen] && szInput[nLen] <= 'Z') { if(szInput[nLen] == cInput || szInput[nLen] == cInput + ('A' - 'a')) { nCnt++; } } else if(szInput[nLen] == cInput) { nCnt++; } nLen--; } printf("%d", nCnt); return 0; }
3、明明的隨機數
題目描述
明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了N個1到1000之間的隨機整數(N≤1000),對於其中重復的數字,只保留一個,把其余相同的數去掉,不同的數對應着不同的學生的學號。然后再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成“去重”與“排序”的工作(同一個測試用例里可能會有多組數據,希望大家能正確處理)。
Input Param
n 輸入隨機數的個數
inputArray n個隨機整數組成的數組
Return Value
OutputArray 輸出處理后的隨機整數
注:測試用例保證輸入參數的正確性,答題者無需驗證。測試用例不止一組。
輸入描述:
輸入多行,先輸入隨機整數的個數,再輸入相應個數的整數
輸出描述:
返回多行,處理后的結果
示例1
輸出
復制10 15 20 32 40 67 89 300 400
代碼:
#include <iostream> #include <stdio.h> #include <string.h> int main() { int nTotal = 0; int nCnt = 0; int nPos = 0; int nInserted = 0; int *szInput = NULL; scanf("%d", &nCnt); if(nCnt < 1 || nCnt > 1000) { return 0; } nTotal = nCnt; szInput = new int[nCnt]; if(!szInput) { return 0; } while(nCnt-- > 0) { int nTmp = 0; int nInsertPos = 0; int nFlag = 0; scanf("%d\n", &nTmp); for(int i = 0; i < nInserted; i++) { if(szInput[i] == nTmp) { nFlag = 1; break; } if(szInput[i] > nTmp) { nInsertPos = i; break; } nInsertPos++; } if(nFlag) { continue; } if(nInsertPos < nInserted) { for(int i = nInserted - 1; i >= nInsertPos; i--) { szInput[i + 1] = szInput[i]; //nInserted++; } } szInput[nInsertPos] = nTmp; nInserted++; } //printf("----------------result---------------\n"); int j = 0; while(j < nInserted) { printf("%d\n", szInput[j++]); } //system("pause"); return 0; }