输入4*5的矩阵
#include <stdio.h>
int main()
{
int i;
int j;
for(i=1;i<=4;i++){
for(j=1;j<=5;j++){
printf("%d ",i*j);
}
printf("\n");
}
return 0;
}
水仙花数
水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。
方法1
//do while 方法
#include<iostream>
using namespace std;
int main()
{
//1.所有三位数字(100~999)
int num = 100;
do
{
//2.获取所有水仙花数
int a = num % 10; //个位
int b = num / 10 %10; //十位
int c = num / 100 %10; //百位
if(a*a*a + b*b*b + c*c*c == num )
{
cout << num << endl;
}
num++;
}while(numm < 1000)
system("pause");
return 0;
}
方法2
//for循环法
#include <stdio.h>
#include <stdlib.h>
int main() {
int i = 0;
int a = 0;
int b = 0;
int c = 0;
int sum = 0;
for (i = 100; i <= 999; i++) {
a = i / 100;
b = i / 10 % 10;
c = i % 10;
sum = a * a * a + b * b * b + c * c * c;
if (sum == i) {
printf(" %d", i);
}
}
system("pause");
return 0;
}
方法3
#include <stdio.h>
#include <math.h>
int main()
{
int input = 0;
scanf("%d", &input);
//遍历这些数
for (int i = 0; i < input; i++)
{
//求这个数的位数
int n = i;
int count = 1;
while (n > 9)
{
count++;
n /= 10;
}
//求和
int m = i;
int sum = 0;
while (m)
{
int a = m % 10;
sum += (int)pow(a, count);
m /= 10;
}
//判断是否相等
if (i == sum)
{
printf("%d ", i);
}
}
printf("\n");
return 0;
}
3*4矩阵,并求最大值
#include <stdio.h>
void printArryDouble(int arr[][4],int ihang, int ilie )
{
int i;
int j;
for(i=0;i<ihang;i++){
for(j=0;j<ilie;j++){
printf("%d ",arr[i][j]);
}
putchar('\n');
}
}
void initArryDouble(int arr[][4],int ihang, int ilie)
{
int i;
int j;
for(i=0;i<ihang;i++){
for(j=0;j<ilie;j++){
printf("请输入第%d行,第%d列的数据\n",i+1,j+1);
scanf("%d",&arr[i][j]);
}
}
}
int getMaxDataFromArryDouble(int arr[][4],int ihang, int ilie)
{
int i;
int j;
int max;
max = arr[0][0];
for(i=0;i<ihang;i++){
for(j=0;j<ilie;j++){
if(max < arr[i][j]){
max = arr[i][j];
}
}
}
return max;
}
int main()
{
int max;
int arr[3][4];//特殊的一维数组,每个元素又是一个数组,大小确定
initArryDouble(arr,3,4);
printArryDouble(arr,3,4);
max = getMaxDataFromArryDouble(arr,3,4);
//max = getMaxDataFromArryDouble(&arr[0][0],3,4);
printf("二维数组中最大的值是%d\n",max);
return 0;
}