C编程用行和列循环

时间:2014-03-03 14:43:00

标签: c loops

尝试学习并学习C编程的逻辑。我觉得有点混淆控制行和列的循环

我如何在C中实现它?

Enter the number: 3
-a-
---
-a-

Enter the number: 5
-a-a-
-----
-a-a-
-----
-a-a-

感谢您的帮助!

4 个答案:

答案 0 :(得分:2)

由于这是一个学习练习,以下是一些可以帮助您找到解决方案的要点:

  • 最常见的二维迭代方法是两个嵌套循环
  • 在这种情况下,使用两个嵌套的for循环是个好主意
  • 在内部for循环体内,您可以访问两个变量 - 一个表示当前行,另一个表示当前列
  • 您的代码需要根据行和列的值来决定是打印字母还是短划线
  • 当行是奇数时,或当列是偶数时,打印短划线;否则,打印字符'a'
  • 通过检查num % 2num & 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.