二维数组中的计数值-C
所以我一直在努力完成一个学习C的作业,只是希望能纠正我的错误 这个场景是一个调查,这是我期望产生的结果二维数组中的计数值-C,c,xcode,windows,macos,sublimetext3,C,Xcode,Windows,Macos,Sublimetext3,所以我一直在努力完成一个学习C的作业,只是希望能纠正我的错误 这个场景是一个调查,这是我期望产生的结果 POPULARITY TABLE ---------------------------------------------------- City Cricket Footy Tennis Soccer ----------------------------------------------------- Melbourne 4 1 1
POPULARITY TABLE
----------------------------------------------------
City Cricket Footy Tennis Soccer
-----------------------------------------------------
Melbourne 4 1 1 4
Sydney 4 5 1 0
Brisbane 2 2 4 4
Adelaide 1 0 2 0
-----------------------------------------------------
表中的变量为M、S、B、A和1,2,3,4
每次我执行代码时,它要么不计算值,要么说一个值有36个
#include <stdio.h>
int main()
{
int i, j;
char M, B, S, A;
int m_cricket = 0, m_footy = 0, m_tennis = 0, m_soccer = 0;
int s_cricket = 0, s_footy = 0, s_tennis = 0, s_soccer = 0
int b_cricket = 0, b_footy = 0, b_tennis = 0, b_soccer = 0
int a_cricket = 0, a_footy = 0, a_tennis = 0, a_soccer = 0
int survey[36][2] = {{M, 1}, {S, 2}, {B, 1}, {B, 3}, {M, 2}, {B, 4}, {S, 1}, {A, 3}, {M, 4}, {B, 2}, {B, 1}, {S, 3}, {B, 4}, {B, 4}, {M, 1}, {M, 1}, {B, 3}, {B, 3}, {S, 1}, {S, 1}, {S, 2}, {M, 4}, {M, 4}, {S, 2}, {A, 1}, {S, 2}, {B, 3}, {M, 1}, {B, 1}, {S, 2}, {A, 3}, {M, 4}, {S, 1}, {B, 2}, {M, 3}, {B, 4}};
for (int i = 0; i < 36; i++)
{
for (int j = 0; j == 2; j++)
{
if (survey[i][j] == M, 1)
{
m_cricket++;
}
}
}
printf("\tCity Cricket Footy Tennis Soccer\n");
printf("------------------------------------------------\n");
printf("Melbourne:\t %d\t %d\t %d\t %d\t\n", m_cricket, m_footy, m_tennis, m_soccer);
printf("Sydney:\t %d\t %d\t %d\t %d\t\n", s_cricket, s_footy, s_tennis, s_soccer);
printf("Brisbane:\t %d\t %d\t %d\t %d\t\n", b_cricket, b_footy, b_tennis, b_soccer);
printf("Adelaide:\t %d\t %d\t %d\t %d\t\n", a_cricket, a_footy, a_tennis, a_soccer);
return 0;
}
#包括
int main()
{
int i,j;
字符M,B,S,A;
int m_板球=0,m_足球=0,m_网球=0,m_足球=0;
国际板球队=0,足球队=0,网球队=0,足球队=0
国际板球=0,足球=0,网球=0,足球=0
int a_板球=0,a_足球=0,a_网球=0,a_足球=0
[36][2][3 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 4}、{S,2}、{A,1}、{S,2}、{B,3}、{M,1}、{B,1}、{S,2}、{A,3}、{M,4}、{S,1}、{B,2}、{M,3}、{B,4};
对于(int i=0;i<36;i++)
{
对于(int j=0;j==2;j++)
{
如果(测量[i][j]==M,1)
{
板球++;
}
}
}
printf(“\tCity Cricket Footy网球足球”);
printf(“---------------------------------------------------------------\n”);
printf(“墨尔本:\t%d\t%d\t%d\t%d\t\n”、板球、足球、网球、足球);
printf(“悉尼:\t%d\t%d\t%d\t%d\t\n”,s_板球、s_足球、s_网球、s_足球);
printf(“布里斯班:\t%d\t%d\t%d\t%d\t\n”、板球、足球、网球、足球);
printf(“阿德莱德:\t%d\t%d\t%d\t%d\t\n”,板球、足球、网球、足球);
返回0;
}
我哪里出错了?有没有更好的方法来编写代码
我只为墨尔本编写代码,因为在编写此代码时,我的逻辑是,如果我能让一个城市工作,其余的城市将很简单
- 您使用未初始化的字符变量(
、M
、B
和S
)就像它们意味着什么一样;这很令人困惑A
- 这行:
毫无意义。如果,它将始终采用如果(调查[i][j]==M,1)
,因为逗号运算符使条件等效于单个
1
for (int j = 0; j == 2; j++)
……什么也不做。它仅在j
为2
时运行。因为它被初始化为0
,所以永远不会执行其中的代码
如果您希望它在内部数组的值上循环(0
和1
),您需要检查j
是否小于2
,就像您对外部循环所做的那样
for (int j = 0; j < 2; j++)
另外,如果您打算使用M
、B
、S
和A
变量将字符放入数组中,您只需将单引号括起来,就像'M'
一样,因为它们当前未分配值,所以可能具有任何值。这同样适用于if
语句
因此,总结您的代码应该如下所示:
#include <stdio.h>
int main()
{
int m_cricket = 0, m_footy = 0, m_tennis = 0, m_soccer = 0;
int s_cricket = 0, s_footy = 0, s_tennis = 0, s_soccer = 0
int b_cricket = 0, b_footy = 0, b_tennis = 0, b_soccer = 0
int a_cricket = 0, a_footy = 0, a_tennis = 0, a_soccer = 0
int survey[36][2] = {{'M', 1}, {'S', 2}, {'B', 1}, {'B', 3}, {'M', 2}, {'B', 4}, {'S', 1}, {'A', 3}, {'M', 4}, {'B', 2}, {'B', 1}, {'S', 3}, {'B', 4}, {'B', 4}, {'M', 1}, {'M', 1}, {'B', 3}, {'B', 3}, {'S', 1}, {'S', 1}, {'S', 2}, {'M', 4}, {'M', 4}, {'S', 2}, {'A', 1}, {'S', 2}, {'B', 3}, {'M', 1}, {'B', 1}, {'S', 2}, {''A'', 3}, {'M', 4}, {'S', 1}, {'B', 2}, {'M', 3}, {'B', 4}};
for (int i = 0; i < 36; i++)
{
if ((survey[i][0] == 'M') && (survey[i][1]==1))
{
m_cricket++;
}
}
printf("\tCity Cricket Footy Tennis Soccer\n");
printf("------------------------------------------------\n");
printf("Melbourne:\t %d\t %d\t %d\t %d\t\n", m_cricket, m_footy, m_tennis, m_soccer);
printf("Sydney:\t %d\t %d\t %d\t %d\t\n", s_cricket, s_footy, s_tennis, s_soccer);
printf("Brisbane:\t %d\t %d\t %d\t %d\t\n", b_cricket, b_footy, b_tennis, b_soccer);
printf("Adelaide:\t %d\t %d\t %d\t %d\t\n", a_cricket, a_footy, a_tennis, a_soccer);
return 0;
}
#包括
int main()
{
int m_板球=0,m_足球=0,m_网球=0,m_足球=0;
国际板球队=0,足球队=0,网球队=0,足球队=0
国际板球=0,足球=0,网球=0,足球=0
int a_板球=0,a_足球=0,a_网球=0,a_足球=0
[36][[3 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 4},{'S',2},{'A',1},{'S',2},{'B',3},{'M',1},{'B',1},{'S',2},{'A',3},{'M',4},{'S',1},{'B',2},{'M',3},{'B',4};
对于(int i=0;i<36;i++)
{
如果((调查[i][0]='M')&&(调查[i][1]==1))
{
板球++;
}
}
printf(“\tCity Cricket Footy网球足球”);
printf(“---------------------------------------------------------------\n”);
printf(“墨尔本:\t%d\t%d\t%d\t%d\t\n”、板球、足球、网球、足球);
printf(“悉尼:\t%d\t%d\t%d\t%d\t\n”,s_板球、s_足球、s_网球、s_足球);
printf(“布里斯班:\t%d\t%d\t%d\t%d\t\n”、板球、足球、网球、足球);
printf(“阿德莱德:\t%d\t%d\t%d\t%d\t\n”,板球、足球、网球、足球);
返回0;
}
inti,j;
是多余的,因为您在循环中再次声明它们,并且它们只在循环中使用。在进行C编程时,您不能仅仅“猜测语法”通过尝试和错误。这永远不会成功。相反,你必须真正知道你在做什么,在你写的每一行代码。这段代码没有任何意义-你需要在你的初级编程书中学习字符串和字符。
#include <stdio.h>
int main()
{
int m_cricket = 0, m_footy = 0, m_tennis = 0, m_soccer = 0;
int s_cricket = 0, s_footy = 0, s_tennis = 0, s_soccer = 0
int b_cricket = 0, b_footy = 0, b_tennis = 0, b_soccer = 0
int a_cricket = 0, a_footy = 0, a_tennis = 0, a_soccer = 0
int survey[36][2] = {{'M', 1}, {'S', 2}, {'B', 1}, {'B', 3}, {'M', 2}, {'B', 4}, {'S', 1}, {'A', 3}, {'M', 4}, {'B', 2}, {'B', 1}, {'S', 3}, {'B', 4}, {'B', 4}, {'M', 1}, {'M', 1}, {'B', 3}, {'B', 3}, {'S', 1}, {'S', 1}, {'S', 2}, {'M', 4}, {'M', 4}, {'S', 2}, {'A', 1}, {'S', 2}, {'B', 3}, {'M', 1}, {'B', 1}, {'S', 2}, {''A'', 3}, {'M', 4}, {'S', 1}, {'B', 2}, {'M', 3}, {'B', 4}};
for (int i = 0; i < 36; i++)
{
if ((survey[i][0] == 'M') && (survey[i][1]==1))
{
m_cricket++;
}
}
printf("\tCity Cricket Footy Tennis Soccer\n");
printf("------------------------------------------------\n");
printf("Melbourne:\t %d\t %d\t %d\t %d\t\n", m_cricket, m_footy, m_tennis, m_soccer);
printf("Sydney:\t %d\t %d\t %d\t %d\t\n", s_cricket, s_footy, s_tennis, s_soccer);
printf("Brisbane:\t %d\t %d\t %d\t %d\t\n", b_cricket, b_footy, b_tennis, b_soccer);
printf("Adelaide:\t %d\t %d\t %d\t %d\t\n", a_cricket, a_footy, a_tennis, a_soccer);
return 0;
}