我需要在C中打印以下模式。我已经尝试了很多,但我无法确定模式
1 1 1 1 2
3 2 2 2 2
3 3 3 3 4
5 4 4 4 4
5 5 5 5 6
答案 0 :(得分:0)
试试这个:
#include <stdio.h>
int main()
{
int i,j;
int n = 9;
for(i=1;i<=n;i++)
{
for(j=1;j<=5;j++)
{
if(i%2==0)
{
if(j==1)
{
printf(" %d",i+1);
}
else
printf(" %d",i);
}
else
{
if(j==5)
{
printf(" %d",i+1);
break;
}
else
{
printf(" %d",i);
}
}
}
printf("\n");
}
return 0;
}
输出:
1 1 1 1 2
3 2 2 2 2
3 3 3 3 4
5 4 4 4 4
5 5 5 5 6
7 6 6 6 6
7 7 7 7 8
9 8 8 8 8
9 9 9 9 10
答案 1 :(得分:0)
答案 2 :(得分:0)
简单的解决方案。
#define MAX_ROW 5
#define MAX_COL 5
int main ()
{
int row,col;
int matrix[MAX_ROW][MAX_COL];
for (row=0; row<MAX_ROW; row++)
{
for (col=0; col<MAX_COL; col++)
{
if (col== MAX_COL-1)
{
if(row%2)
matrix[row][col] = row+1;
else
matrix[row][col] = row+2;
}
else if (col == 0)
{
if (row%2)
matrix[row][col] = row+2;
else
matrix[row][col] = row+1;
}
else
{
matrix[row][col] = row+1;
}
}
}
for (row=0; row<MAX_ROW; row++)
{
for (col=0; col<MAX_COL; col++)
{
printf("%d ", matrix[row][col]);
}
printf("\n");
}
return 0;
}
答案 3 :(得分:0)
我希望这对你有用。
#include<stdio.h>
int main()
{
int i,j;
for(i=1;i<=5;i++)
{
int special=i+1;
if(i%2==1)
{
for(j=1;j<=4;j++)
{
printf("%d ",i);
}
printf("%d\n",special);
}
else if(i%2==0)
{
printf("%d ",special);
for(j=1;j<=4;j++)
{
printf("%d ",i);
}
printf("\n");
}
}
}
此代码的第五个输出是:
1 1 1 1 2
3 2 2 2 2
3 3 3 3 4
5 4 4 4 4
5 5 5 5 6
答案 4 :(得分:-2)
我认为你正在寻找更通用的东西:
#include <iostream>
using namespace std;
int main()
{
int dimension = 5;
for( int i = 1 ; i <= dimension ; i++ )
{
for( int j = 1 ; j <= dimension ; j++ )
std::cout << i + (j == 1+((dimension-1)*(i%2))) ? (i%2)*1 : 0;
std::cout << "\n";
}
return 0;
}
尺寸= 5的输出:
11112
32222
33334
54444
55556
尺寸= 7的输出:
1111112
3222222
3333334
5444444
5555556
7666666
7777778
您可以在线查看here
祝你好运!