二维数组与循环的问题
想测试每一列的和; 当一列超过2时打印lose 不超则win#include<stdio.h>
int main(){
int a={0};//初始化一个5*5矩阵 里面的元素都是0;
int i,k=0;
int s=0; //计算总和的s
a=1; //随便赋值两个位置为1
a=1;
if(k<5){
for(i=0;i<5;i++){
s=s+a;
if (s>=2){printf("lose\n");}
else{printf("win\n");}
k++;
s=0;}
}
return 0;
}
按照上面的赋值这里应该是2 打印lose的 为什么最好却打印出win呢? 前面用while 循环.
这个for循环只要包涵每一列的S计算就好
for(i=0;i<5;i++){
s=s+a;}
然后云判断S值大小,S清零,K++。
修改后代码如下:
#include<stdio.h>
int main(){
int a={0};//初始化一个5*5矩阵 里面的元素都是0;
int i,k=0;
int s=0; //计算总和的s
a=1; //随便赋值两个位置为1
a=1;
while(k<5){
for(i=0;i<5;i++){
s=s+a;
}
if (s>=2){printf("lose\n");}
else{printf("win\n");}
k++;
s=0;
}
return 0;
} 本帖最后由 major_lyu 于 2020-2-21 23:03 编辑
你的代码实在看不懂。你是要求每列元素和,如果该列元素和大于等于2输出lose,否则输出win?
#include <stdio.h>
int main() {
int a = { 0 };//初始化一个5*5矩阵 里面的元素都是0;
int i, k = 0;
int s = 0; //计算总和的s
a = 1; //随便赋值两个位置为1
a = 1;
a = 1;
while (k < 5) //列
{
for (i = 0; i < 5; i++)
{
s = s + a; //求当前列中元素的和
}
if (s >= 2)
{
printf("lose\n");
}
else
{
printf("win\n");
}
k++; //进行下一列
s = 0; //初始化s
}
return 0;
}
输出:
win
lose
win
win
win
刚开始写代码,就要努力养成良好的代码风格,包括合理的缩进,大括号位置,必要的注释等等。你可以选择一种代码规范来参考。 小笨笨难得糊涂 发表于 2020-2-21 23:03
前面用while 循环.
这个for循环只要包涵每一列的S计算就好
for(i=0;i
他说要求每列的和。所以for循环里的语句得改成s=s+a;哦
页:
[1]