水仙花数
找出所有的水仙花数。(水仙花数:是各位数字的立方和等于该数本身的三位数)
例:153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153
#include <iostream>
using namespace std;
int main() {
int num = 100;
while (num < 1000) {
// hun 百位,ten 十位,unit 个位
int hun = num / 100;
int ten = (num % 100) / 10;
int unit = (num % 100) % 10;
// total 各位数字的立方和
int total = hun*hun*hun + ten*ten*ten + unit*unit*unit;
if (total == num) {
cout << num << "" << endl;
}
num++;
}
return 0;
}
结果:153 370 371 407
敲桌子
从1开始数到数字100,如果数字个位含有7,或者数字十位含有7,或者该数字是7的倍数,则打印“敲桌子”;其余数字直接打印输出。
#include <iostream>
using namespace std;
int main() {
int i;
for (i = 1; i < 100; i++) {
if (i % 10 == 7 || i / 10 == 7 || i % 7 == 0) {
cout << "敲桌子" << endl;
}
else {
cout << i << endl;
}
}
return 0;
}
乘法表
打印九九乘法表。
#include <iostream>
using namespace std;
int main() {
int i, j;
for (i = 1; i <= 9; i++) {
for (j = 1; j <= i; j++) {
int n = i * j;
if (i != j) {
cout << i << "*" << j << "=" << n << " " ;
}
else {
// i == j 时换行
cout << i << "*" << j << "=" << n << " " << endl;
}
}
}
}
小猪称体重
在数组{300,350,200,400,250}中记录了五只小猪的体重,找出并打印最重的。
#include <iostream>
using namespace std;
int main() {
// i 数组下标,j 最大值位置
int i,j;
int arr[5] = { 300, 350, 200, 400, 250 };
int max = arr[0];
for (i = 0; i < 5; i++) {
if (max < arr[i]) {
max = arr[i];
// i从0开始,j应比i大1
j = i + 1;
}
}
cout << "最重的是第" << j << "只小猪,体重为" << max << endl;
return 0;
}
数组元素逆置
声明一个五元素的数组,并将元素逆置。这里用两种办法解该题。
例:{ 1, 22, 34, 56, 754 } 逆置为 { 754,56,34,22,1 }
1. 新建数组实现逆置:
#include <iostream>
using namespace std;
int main() {
int arr[5] = { 1, 22, 34, 56, 754 };
int i = 4;
// 建立空数组记录倒序
int j;
int arr_new[5] = {};
for (j = 0; j < 5; j++) {
arr_new[j] = arr[i];
i --;
}
// 利用循环输出新数组内容
for (j = 0; j < 5; j++) {
cout << arr_new[j] << " " ;
}
cout << endl;
return 0;
}
2. 数组内部元素互换:
#include <iostream>
using namespace std;
int main() {
int arr[5] = { 1, 22, 34, 56, 754 };
int i = 4;
// 数组长度 = 整个数组大小 / 一个元素的大小
int len = sizeof(arr) / sizeof(arr[0]);
// 对应下标元素互换
int start = 0;
int end = len - 1;
while (start < end) {
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
//打印数组元素
int j;
for (j = 0; j < len; j++) {
cout << arr[j] << " ";
}
return 0;
}
考试成绩统计
输出下面三位同学的总分。
| 语文 | 数学 | 英语 | 张 | 100 | 100 | 100 | 李 | 90 | 50 | 100 | 王 | 60 | 70 | 80 |
#include<iostream>
using namespace std;
int main() {
// 创建二维数组
int scores[3][3] = {
{100,100,100},
{90,50,100},
{60,70,80}
};
string names[3] = {"张","李","王"};
// i 行下标 j 列下标
int i, j;
for (i = 0; i < 3; i++) {
int total = 0;
for (j = 0; j < 3; j++) {
total = total + scores[i][j];
}
cout << names[i] << " " << total << endl;
}
}
|