C;(0分)
纯用C太难搞了,打表差点没搞死我,也可能是我自身问题吧,结果正确?但没分
#include<stdio.h>
void print1(char *a, int n)
{
for (int i = 0; i <= n - 1; i++)
{
if (a[i] == '1')
{
printf("..X");
}
else if (a[i] == '4')
{
printf("X.X");
}
else
{
printf("XXX");
}
if (n - 1 - i)
{
printf(".");
}
}
}
void print2(char *a, int n)
{
for (int i = 0; i <= n - 1; i++)
{
if (a[i] == '1' || a[i] == '2' || a[i] == '3' || a[i] == '7')
{
printf("..X");
}
else if (a[i] == '5' || a[i] == '6')
{
printf("X..");
}
else
{
printf("X.X");
}
if (n - 1 - i)
{
printf(".");
}
}
}
void print3(char *a, int n)
{
for (int i = 0; i <= n - 1; i++)
{
if (a[i] == '0')
{
printf("X.X");
}
else if (a[i] == '7' || a[i] == '1')
{
printf("..X");
}
else
{
printf("XXX");
}
if (n - 1 - i)
{
printf(".");
}
}
}
void print4(char *a, int n)
{
for (int i = 0; i <= n - 1; i++)
{
if (a[i] == '2')
{
printf("X..");
}
else if(a[i] == '0' || a[i] == '6' || a[i] == '8')
{
printf("X.X");
}
else
{
printf("..X");
}
if (n - 1 - i)
{
printf(".");
}
}
}
void print5(char *a, int n)
{
for (int i = 0; i <= n - 1; i++)
{
if (a[i] == '4' || a[i] == '7' || a[i] == '1')
{
printf("..X");
}
else
{
printf("XXX");
}
if (n - 1 - i)
{
printf(".");
}
}
}
int main()
{
int n = 0, i = 0;
char b[1010];
scanf("%d", &n);
getchar();
while (i < n)
{
scanf("%c", &b[i]);
i++;
}
print1(b, n);
printf("\n");
print2(b, n);
printf("\n");
print3(b, n);
printf("\n");
print4(b, n);
printf("\n");
print5(b, n);
return 0;
}
C++:(100分)(自己写的)
#include <iostream>
#include <string>
using namespace std;
int main()
{
int n;
string a;
string b[1000];
string c[5] = { "XXX", "X.X", "..X", "X..", "." };
cin >> n;
cin >> a;
for (int i = 1; i <= n; i++)
{
switch (a[i - 1])
{
case '0':
b[1] += c[0];
b[5] += c[0];
b[2] += c[1];
b[3] += c[1];
b[4] += c[1];
break;
case '1':
b[1] += c[2];
b[2] += c[2];
b[3] += c[2];
b[4] += c[2];
b[5] += c[2];
break;
case '2':
b[1] += c[0];
b[3] += c[0];
b[5] += c[0];
b[2] += c[2];
b[4] += c[3];
break;
case '3':
b[1] += c[0];
b[3] += c[0];
b[5] += c[0];
b[2] += c[2];
b[4] += c[2];
break;
case '4':
b[3] += c[0];
b[4] += c[2];
b[5] += c[2];
b[1] += c[1];
b[2] += c[1];
break;
case '5':
b[1] += c[0];
b[3] += c[0];
b[5] += c[0];
b[2] += c[3];
b[4] += c[2];
break;
case '6':
b[1] += c[0];
b[3] += c[0];
b[5] += c[0];
b[2] += c[3];
b[4] += c[1];
break;
case '7':
b[1] += c[0];
b[2] += c[2];
b[3] += c[2];
b[4] += c[2];
b[5] += c[2];
break;
case '8':
b[1] += c[0];
b[3] += c[0];
b[5] += c[0];
b[2] += c[1];
b[4] += c[1];
break;
case '9':
b[1] += c[0];
b[3] += c[0];
b[5] += c[0];
b[2] += c[1];
b[4] += c[2];
break;
default:
break;
}
if (n - i)
{
b[1] += c[4];
b[3] += c[4];
b[5] += c[4];
b[2] += c[4];
b[4] += c[4];
}
}
for (int i = 1; i <= 5; i++)
{
cout << b[i].substr(0, b[i].length()) << endl;
}
return 0;
}
推荐看到的一位大佬解题思路,感觉这才是这题的正解呀
P5730 【深基5.例10】显示屏_三无提督w的博客-CSDN博客
python的话暂时没有什么好的想法,自己来的话也是仿C++的打表
同样的这位大佬的思路也挺好的,推荐观看
欢迎各位大佬斧正