【发布时间】:2017-10-24 16:24:02
【问题描述】:
所以我一直在努力完成一项学习 C 的作业,只是希望能对我出错的地方进行某种纠正
场景是一个调查,这是我期望产生的输出
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 i, j;是多余的,因为您在循环中再次声明它们,并且它们仅在循环中使用。 -
在进行 C 编程时,不能只是通过反复试验“猜测语法”。那永远不会成功。相反,你必须真正知道你在做什么,在你写的每一行代码中。这段代码没有任何意义——你需要在你的初级编程书中学习字符串和字符。
标签: c xcode windows macos sublimetext3