1、一個有10個整數元素的數組,編寫一個程序找出其中的最大數和其下標,并在主函數中打印最大數和相應下標
#include<iostream>using namespace std;int main() { void max(int *p, int length); int a[] = { 17,85,67,83,65,49,26,92,38,42 }; int length = sizeof(a) / sizeof(int);//求數組長度 max(a,length); return 0;}void max(int *p,int length) { int index; int i = 0,max = 0; for (; i<length; p++) { if (*p > max) { max = *p; index = i; } i++; } cout << "max= " << max << "/t" << "index= " << index << endl;}/*#include <iostream>using namespace std;void main(){ int a[10]={17,85,67,83,65,49,26,92,38,42}; for(int max=-32768,i=0,j=0;i<10;i++){ if(max<a[i]){ max=a[i]; j=i; } } cout<<"第"<<j+1<<"個元素為最大數,值為:"<<max <<", 下標為:"<<j<<endl;}*/2、編寫一個程序,該程序提示用戶輸入一個字符串,然后程序按照大寫字母個數輸出該字符串(使用字符串數組來存儲字符串)
#include<iostream>#include<cstring>using namespace std;int main() { char a[100]; cout << "請輸入字符串:" << endl; cin >> a; int length = strlen(a);//獲取字符串長度 for (int i = 0; i < length; i++) { if (a[i] >= 'a'&&a[i] <= 'z') { a[i] -= 32; } else if (a[i] >= 'A'&&a[i] <= 'Z') { //a[i] += 32; } } cout << a << endl; return 0;}3、編寫一個程序,該程序提示用戶輸入學生姓名以及考試分數。該程序輸出(假定每個班級中最多有學生30名) 1)班級平均分 2)考試分數低于班級平均分的學生姓名 3)最高分以及最高分的學生姓名
#include<iostream>#include<string>#include<cstdlib>using namespace std;int main() { int i,num; cout << "請輸入學生個數" << endl; cin >> num; if (num > 30) { cout << "學生少于30人" << endl; } string *name = new string[num]; double *grade = new double[num]; if (grade == NULL || name==NULL) { cout << "Cannot allocate more memory, exit the 4、編寫一個程序輸入一個n*n的矩陣,求出兩條對角線元素值之和#include <iostream>using namespace std;int main() { int num; cout << "請輸入對角矩陣的大小" << endl; cin >> num; int **p = new int*[num]; for (int i = 0; i <num; i++) p[i] = new int[num]; int sum = 0; int number; for (int i = 0; i < num; i++) { cout << "請輸入矩陣元素"; cout << "第" << (i + 1) << "行" << endl; for (int j = 0; j < num; j++){ cout << "第" << (j + 1) << "列" << endl; cin >> number; p[i][j] = number; } } for (int i = 0; i < num; i++) { sum += p[i][i] + p[i][num-i-1]; } cout << "sum=" << sum << endl; return 0;}5、初始化一個矩陣F(5*5),元素取自隨機函數,將其值傳遞給函數,實現矩陣轉置。在主函數中輸出結果。隨機函數的原型 包含在stdlib.h中 是int rand(); 它產生一個0–65535的隨機數(16位機器中)
#include<iostream>#include<stdlib.h>using namespace std;int main() { void inverse(int (*p)[5]); int F[5][5]; cout << "變化前" << endl; for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { F[i][j] = rand(); cout << F[i][j] << "/t"; } cout << endl; } inverse(F); cout << "變化后" << endl; for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { cout << F[i][j] << "/t"; } cout << endl; } return 0;}void inverse(int (*p)[5]) { for (int i = 0; i < 5; i++) { for (int j =i; j < 5; j++) { int t = p[i][j]; p[i][j] = p[j][i]; p[j][i] = t; } }}/*int main() { void inverse(int matrix1[5][5], int middle[5][5]); int F[5][5] ,middle[5][5]; for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { F[i][j] = rand(); } } cout << "變化前" << endl; for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { cout << F[i][j] << "/t"; } cout << endl; } inverse(F,middle); cout << "變化后" << endl; for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { cout << middle[i][j] << "/t"; } cout << endl; } return 0;}void inverse(int matrix1[5][5], int middle[5][5]) { //轉置矩陣 int i, j; for (i = 0; i<5; i++) for (j = 0; j<5; j++) middle[j][i] = matrix1[i][j];}*/6、編寫一個函數char* strfind(char*s,char*t),用于查找字符串t在字符串s中最右邊出現的位置,如果沒有找到則返回NULL。并編寫一個主程序來測試該函數,在主程序中按行輸入兩個字符串,并輸出結果。
/*#include<iostream>using namespace std;int main() { char* strfind(char*s, char*t); int num1, num2; char *index; while (1) { cout << "請輸入長字符串的長度" << endl; cin >> num1; cout << "請輸入短字符串長度" << endl; cin >> num2; if (num2 > num1) { cout << "短字符串長度大于長字符串,請重新輸入" << endl; } else { char *s = new char[num1]; char *t = new char[num2]; cout << "請輸入長字符串" << endl; cin >> s; cout << "請輸入短字符串" << endl; cin >> t; index = strfind(s, t); int lengthI = strlen(index); int lengthT = strlen(t); int xiabiao = lengthI - lengthT; cout << index << endl; cout << "最右邊出現的位置:" << xiabiao << endl; break; } } return 0;}char* strfind(char*s, char*t) { char *index; int i, j; int lengthS = strlen(s); int lengthT = strlen(t); char temp; for (i = 0; i < lengthS/2; i++) { temp = s[i]; s[i] = s[lengthS -1 - i]; s[lengthS - i-1] = temp; } for (i = 0; i < lengthT / 2; i++) { temp = t[i]; t[i] = t[lengthT - i-1]; t[lengthT - i-1] = temp; } if (strstr(s, t) == NULL) { index = "Not found!"; } else { index = strstr(s, t); } return index;}*/#include <iostream> #include <string> using namespace std;char *strfind(char *src, char *dst){ int len1 = strlen(src); int len2 = strlen(dst); int start = len1 - 1; int end = len2 - 1; int i, j = len2 - 1; for (i = start; i >= end; i--) { if (src[i] == dst[j]) { j--; if (j == -1) { cout << "the position is: " << i + 1 << endl; return &src[i]; } } else j = len2 - 1; } return NULL;}int main(){ char src[100]; char dst[100]; cout << "請輸入一個字符串:" << endl; cin.getline(src, 100, '/n'); cin.clear(); cout << "請輸入要查找的字符串:" << endl; cin.getline(dst, 100, '/n'); char *temp = strfind(src, dst); if (temp != NULL) { cout << "所尋找的字符串以及后面的字符串為:" << temp << endl; } else cout << "no such characters!" << endl; system("pause"); return 0;}新聞熱點
疑難解答