尝试学习并学习C编程的逻辑。我觉得有点混淆控制行和列的循环
我如何在C中实现它?
Enter the number: 3
-a-
---
-a-
Enter the number: 5
-a-a-
-----
-a-a-
-----
-a-a-
感谢您的帮助!
答案 0 :(得分:2)
由于这是一个学习练习,以下是一些可以帮助您找到解决方案的要点:
for
循环是个好主意for
循环体内,您可以访问两个变量 - 一个表示当前行,另一个表示当前列'a'
num % 2
或num & 1
,您可以判断某个数字是奇数还是偶数。在这两种情况下,如果结果为零,则数字是偶数;否则,这个数字很奇怪。答案 1 :(得分:0)
这只是关于使用嵌套循环,我想说如果你想学习有关访问行和coloumn的细节,可以在Matrix操作上练习一些程序,例如加法,乘法等。你会在google中找到很多这样的程序。 / p>
答案 2 :(得分:0)
将此内容放入gcc -o cloop cloop.c -std=c99
和./cloop
。
#include <stdio.h>
#include <stdlib.h>
int main( int argc, char**argv){
int i;
do{
i = 0;
printf("Give me an int (0 to quit) ");
if( scanf("%u", &i) != 1) break;
if( i < 0 ) i = 0;
for( int j =0; j<i;j++) {
for( int k =0; k<i;k++)
printf("%s", (
k % 2 == 0
? "-"
: j % 2 == 0 ? "a" : "-" )
);
printf("\n");
}
} while ( i > 0 );
}
答案 3 :(得分:-1)
#include<stdio.h>
main()
{
int i,j,n;
printf("Enter the number:");
scanf("%d",&n); // Input the number
for(i=0;i<n;i++) // For n rows
{
printf("\n"); // New line after each row
for(j=0;j<n;j++) // For n columns for each row
{
if(i%2==0) // For alternate(even) rows(the one with a's)
{
if(j%2==0) // For alternate(even) columns(the one without a's)
printf("-");
else
printf("a");
}
else
printf("-"); // For alternate(odd) rows(with only -'s)
}
}
}
This is the logic.