循环问题

到百度贴吧首页
新闻   网页   贴吧   知道   MP3   图片   视频   百科
    吧内搜索 | 帮助

循环问题

203.88.224.*

1楼

int main ()
{
   int i, j, k=0;
   char ar[20][20];

   for(i=0; i<4; i++)
  {
     for(j=0; j<4; j++)
       { k++;
          ar[i][j] = k;
       printf("%d", k);
       printf(" ");
       }
   printf("\n");
 }
return 0;
}
-------------------------------------------------------
上面的程序运行结果是:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
如果要得到:
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
应该怎么写?

2楼

int main ()
{
 int i, j, k=0;
 char ar[20][20];

 for(i=0; i<4; i++)
 {k++;
 for(j=0; j<4; j++)
 { 
 ar[i][j] = k;
 }
 
 }
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
printf("%d",ar[j][i])
printf("\n");
}
return 0;
}
-----------------
实际上就是四阶矩阵的转置

203.88.224.*

3楼

上面的程序好象不对~~~? 我得到的输出是:
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4

4楼

int main ()
{
 int i, j, k=0;
 char ar[20][20];
 for(i=0; i<4; i++)
 {
 for(j=0; j<4; j++)
 { k++;
 ar[i][j] = k;
 }
 
 }
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
printf("%d ",ar[j][i]);
printf("\n");
}
return 0;
}

203.88.224.*

5楼

恩,这个题我懂了。刚才把其他类似的题做了一下,所以回晚了。
谢谢!

203.88.225.*

6楼

输入为3,将得到:
BWB
WBW
BWB
输入为4,将得到:
BWBW
WBWB
BWBW
WBWB
怎样写这个程序?谢谢!

7楼

#include <stdio.h>

int main (int argc, char *argv[])
{
    unsigned int i, j, c;
    char wb = 'W', wbb = 'B';
    if (1 == scanf("%u", &c))
        for (i = 0; i < c; (c%2) ? wb ^= wbb ^= wb ^= wbb : 0, putchar('\n'), i++)
            for (j = 0; wb ^= wbb ^= wb ^= wbb, j < c; putchar(wb), j++);
    return 0;
}

203.88.225.*

8楼

请问 wb ^= wbb ^= wb ^= wbb 是什么意思?

9楼

交换 wb 和 wbb 中的值。
203.88.225.*

10楼

是不是相当于:
tmp = wb;
wb = wbb;
wbb = tmp;
?

因为是初学者,不是很理解不for loop里面的东西?
(c%2) ? wb ^= wbb ^= wb ^= wbb : 0, 
表示当(c%2) 成立时,执行wb ^= wbb ^= wb ^= wbb , 否则退出循环?
但是在第二个for loop里,wb ^= wbb ^= wb ^= wbb 是什么意思呢?

61.185.11.*

11楼

int main ()
{
 int i, j, k=0;
 char ar[20][20];

 for(i=0,k=1; i<4; i++,k++;)
 {
 for(j=0; j<4; j++)
 { k=k+4;
 ar[i][j] = k;
 printf("%d", k);
 printf(" ");
 }
 printf("\n");
 }
return 0;
}

203.88.225.*

12楼

erm~~~~楼上的程序不正确哦,K值是以1为递增值,不是4。所以得到:
5 9 3 17
22 26 30 34
39 43 47 51
56 60 64 68

203.88.225.*

13楼

VC99那个方法很好(4楼),可以用那个程序举一反三,转换出各种矩阵。

14楼

抱歉,我刚开始以为你是要功课那类人。
对那种人,我要不就不理,要不就写一个很难懂的,让他没办法给老师解释。哈哈。
7 楼的就是故意这样写的。
我仔细看了一下你的帖子,你不像那些人,所以我重写了一个,这个思路比较容易看出来。

#include <stdio.h>

const char letter1 = 'B';
const char letter2 = 'W';

int main (int argc, char *argv[])
{
    int row, column;
    unsigned int lines;
    char c;
    if (1 != scanf("%u", &lines)) /* something wrong entered, exit */
        return -1;
    for (row = 0; row < lines; row++) {
        if (row%2)
            c = letter2;
        else
            c = letter1;
        for (column = 0; column < lines; column++) {
            printf("%c", c);
            if (letter1 == c)
                c = letter2;
            else
                c = letter1;
        }
        printf("\n");
    }
    return 0;
}

203.88.224.*

15楼

呵呵,这样的确好懂多了。谢谢~~
那道题是我昨天的考试题的第一题,浪费了好多时间,最后都没想出来,所以拿上来问了。

218.25.205.*

16楼

用步长循环打印1,5,9,13 然后下面行打印同列原变量加1,第三行打印同列原变量加2,第三行打印同列原变量加3。
61.141.157.*

17楼

我很想问,我是一个初学者,我很努力看书,也花不少时间上机练习,但为什么一做作业的时候一题恨不得3天都作不出来,就一道很简单的题目都做不出来,请以上几位高手们指点一下可以吗~!我是在北大青鸟学习的。刚学到c语言for循环这里,做作业就是不会,我自己都学到特别的没自信学的好痛苦,!!!
61.144.172.*

18楼

fgajgfaegajdghadgakhgayugdajdguksfjqwdaghwetdahywerftetystr78sftr
219.140.81.*

19楼

main()
{
 int i,j,b=1;
 for(i=1;i<=4;i++)
 {
 for(j=1;j<=4;j++)
 {
 printf("%4d",b);
 b=b+4;
 }
 printf("\n");
 b=1+i;
 }
scanf("%d",b);
}
不是很难吧

219.236.16.*

20楼

大家都是软件编程爱好者啊,希望对编程有兴趣的话一起加入这个群 16201266(软件编程互动)
大家一起交流和学习。
语言上的东西是需要多交流互动,
看别人的问题补自己的潜在问题。

220.175.89.*

21楼

请教14楼:int main (int argc, char *argv[]) 之中()中的是参数
吧,是什么意思呢?上机时有warning啊,如果除去它们就没有了warning
,加上它们是什么意思呢?

219.140.88.*

22楼

#include<stdio.h>
main()
{
 int i,j,n;
 scanf("%d",&n);
 for(i=0;i<n;i++)
 {
 for(j=0;j<n;j++)
 {
 if((i+j)%2==0) printf("B");
 else printf("W");
 }
 printf("\n");
 }
}

218.81.147.*

23楼

牌最多发四家,东南西北4家,牌可以按大小也可以按花色排序(就是既可以象双扣那样排也可以象红心那样按花色排)最多4副牌,牌的背面要有图案大小司令可以自定义(比如正司令为F,副的可以为H,用链表做,
等着急用!!!!!!!!

222.55.63.*

24楼

4楼的只对N*N型矩阵有效
 那遇到M*N型的时候怎么做??
 我一直做不出!

25楼

呵呵`我就喜欢7楼``

26楼

wb ^= wbb ^= wb ^= wbb原来这个表示wb和wbb交换值啊。。原来如此,又长知识乐呵呵
220.173.90.*

27楼

求100之内的素数?
“水仙花数”利用FOR循环控示100-999个数?
这两题不会做。
请以上几位高手们指点一下可以吗~!

219.216.128.*

28楼


 @@@ 
 @@@@@
 @@@@@@@
@@@@@@@@@
这道题谁会呀?
帮我把程序写下
谢谢了

59.46.44.*

29楼

上面那位北大青鸟的同学,怎么和我想问的都是同样一个问题呢
其实我也是北大青鸟的,我有个问题是,上课的时候都听懂了,怎么一上机的时候就晕忽忽的??

30楼

真是...无奈的C呀.
#include<stdio.h>
#define M 4

int main()
{int a[M][M],i,k,n;
 for(i=0;i<M;i++)
 { n=i+1;
 for(k=0;k<M;n+=M,k++)
 {a[i][k]=n;}
 }
 for(i=0;i<M;i++)
 { for(k=0;k<M;k++)
 printf("%3d",a[i][k]);
 putchar('\n');
 }
 getch();
 return 0;
}

发表回复

内 容:
用户名:
  
©2010 Baidu 贴吧协议  意见反馈