C++ 如果有一个或多个行或列被星号填充,我希望程序说是
如果有一行或多行或多列由星星填充,我希望程序说是,所以我的主要目标是有*的水平线或*的真实线或多行C++ 如果有一个或多个行或列被星号填充,我希望程序说是,c++,C++,如果有一行或多行或多列由星星填充,我希望程序说是,所以我的主要目标是有*的水平线或*的真实线或多行 #include <iostream> using namespace std; int main() { char arr[10][10]; int sum = 0; for (int i = 0; i <= 9; i++) { for (int j = 0; j <= 9; j++) {
#include <iostream>
using namespace std;
int main()
{
char arr[10][10];
int sum = 0;
for (int i = 0; i <= 9; i++)
{
for (int j = 0; j <= 9; j++)
{
cin >> arr[i][j];
}
}
for (int x = 0; x <= 9; x++)
{
for (int y = 0; y <= 9; y++)
{
if (arr[x][y] == '*')
{
sum = sum + 1;
}
}
}
if (sum >= 10)
{
cout << "YES" << endl;
}
else
cout << "NO" << endl;
return 0;
}
#包括
使用名称空间std;
int main()
{
char-arr[10][10];
整数和=0;
对于(int i=0;i arr[i][j];
}
}
对于这里有一些问题,其中一个是你的和变量不准确。你继续添加它而不在行/列之间重置它。另一个是你只检查一个方向,你需要检查两行和列。一旦发现10颗星星,就考虑返回,以提高你的表现。行政长官
for (int x = 0; x <= 9; x++)
{
sum = 0;
for (int y = 0; y <= 9; y++)
{
if (arr[x][y] == '*')
{
sum = sum + 1;
if (sum >= 10)
{
cout << "YES" << endl;
return;
}
}
}
}
for(int x=0;x另一种选择是使用bool
变量:
bool column_is_all_stars = true;
for (unsigned int column = 0; column < 10; ++column)
{
column_is_all_stars = true;
for (unsigned int row = 0; row < 10; ++row)
{
if (arr[column][row] != '*')
{
column_is_all_stars = false;
break; // Column has at least 1 character that is not '*'.
}
}
if (column_is_all_stars)
{
cout << "Column " << column << " is all stars.\n";
break; // A column has been found, no more searching required.
}
}
bool列为全星=true;
for(无符号整数列=0;列<10;++列)
{
列_为_all_stars=true;
for(无符号整数行=0;行<10;++行)
{
如果(arr[列][行]!=“*”)
{
列_为_all_stars=false;
break;//列至少有1个字符不是“*”。
}
}
if(列为全明星)
{
cout我希望这就是您的尝试。我还提供了一个非用户输入的数组版本,以便您可以方便地查看和测试具有多种输入类型的代码。您需要分别检查行和列。如果缺少星号,则该行或列没有完全填充星号
#include <iostream>
using namespace std;
char arry[10][10] = {
{'*', '*', '*', ' ', '*', '*', '*', '*', '*', '*'},
{'*', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '*'},
{'*', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '*'},
{'*', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '*'},
{'*', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '*'},
{'*', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '*'},
{'*', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '*'},
{'*', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '*'},
{'*', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '*'},
{'*', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '*'}
};
int main()
{
char arr[10][10];
/*for (int i = 0; i <= 9; i++)
{
for (int j = 0; j <= 9; j++)
{
cin >> arr[i][j];
}
}*/
bool rowHasStar = true;
for (int x = 0; x <= 9; x++)
{
rowHasStar = true;
for (int y = 0; y <= 9; y++)
{
if (arry[x][y] != '*')
{
rowHasStar = false;
}
}
if(rowHasStar)
break;
}
bool columnHasStar = true;
for(int y = 0; y <= 9; y++)
{
columnHasStar = true;
for (int x = 0; x <= 9; x++)
{
if (arry[x][y] != '*')
{
columnHasStar = false;
}
}
if(columnHasStar)
break;
}
if (rowHasStar || columnHasStar)
{
cout << "YES" << endl;
}
else
cout << "NO" << endl;
return 0;
}
#包括
使用名称空间std;
char arry[10][10]={
{'*', '*', '*', ' ', '*', '*', '*', '*', '*', '*'},
{'*', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '*'},
{'*', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '*'},
{'*', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '*'},
{'*', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '*'},
{'*', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '*'},
{'*', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '*'},
{'*', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '*'},
{'*', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '*'},
{'*', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '*'}
};
int main()
{
char-arr[10][10];
/*对于(int i=0;i arr[i][j];
}
}*/
bool-rowHasStar=true;
对于(int x=0;x#包括“stdafx.h”
#包括
使用名称空间std;
int _tmain(int argc,_TCHAR*argv[]{
char-arr[10][10];
int RowSum=0;
int colSum=0;
对于(int i=0;i arr[i][j];
对于(int x=0;x当您询问包含代码的问题时,请仔细检查以确保缩进和间距可读,并且所有代码都标记为代码(许多连续的空白行需要更多的滚动,可能会妨碍您查看所有相关代码)。您的问题是什么?发生了什么?您有示例输入/输出吗?代码不检测星星的行和列-它检测阵列中是否有10颗星星。您需要在两行和列之间循环-而不是在整个阵列上循环。@Ahmeeda编辑您的问题以提供所要求的其他信息。您看到了吗在评论中,它实际上是无用的/不可读的(有意的)。
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[]){
char arr[10][10];
int RowSum = 0;
int colSum = 0;
for (int i = 0; i <= 9; i++)
for (int j = 0; j <= 9; j++)
cin >> arr[i][j];
for (int x = 0; x <= 9 && colSum<10 && RowSum<10; x++)
{
RowSum = 0; colSum = 0;
for (int y = 0; y <= 9 && colSum < 10 && RowSum < 10; y++){
if (arr[x][y] == '*'){
RowSum = RowSum + 1;
}
if (arr[y][x] == '*'){
colSum = colSum + 1;
}
}
}
if (colSum == 10 || RowSum == 10)
{
cout << "YES" << endl;
}
else
{
cout << "NO" << endl;
}
char c = getchar();
fflush(stdin);
return 0;
}