| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 12336 人关注过本帖, 41 人收藏
标题:C语言循环的小艺术(质数判断,菱形打印,奇数阶幻方,字符串循环移位)
只看楼主 加入收藏
c语言一手
Rank: 1
等 级:禁止发言
帖 子:20
专家分:0
注 册:2011-1-6
收藏
得分:0 
回复 楼主 御坂美琴
提示: 作者被禁止或删除 内容自动屏蔽
2011-01-09 13:33
xufan123
Rank: 5Rank: 5
等 级:职业侠客
帖 子:226
专家分:318
注 册:2010-11-15
收藏
得分:0 
第一个三重的 a=3,b=4,c=5;
要在这里循环 step=3,t=9;
step^=( t^=16) ;
这样写没错吧
 第二个
#include<stdio.h>
void main()
{
int num;
int i,j;
printf("please input:\n");
scanf("%d",&num);
for(i=0;i<num;i++)
{
for(j=0;j<num;j++)
if(i==j||(i+j==num-1))
printf("*");
else printf(" ");
printf("\n");
}
}
看看哈 !!!!!!
2011-01-09 13:36
c语言一手
Rank: 1
等 级:禁止发言
帖 子:20
专家分:0
注 册:2011-1-6
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2011-01-09 13:37
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:0 
以下是引用c语言一手在2011-1-9 13:29:59的发言:

step ^= 6;
这个都被你发现了,这个很特殊,别的数(除2和4)好像就不行了吧?

任意两个整数a,b都可以,使步长在a,b之间变化的c = a^b
那么会有  a == c^b  ,  b == c^a

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2011-01-09 13:39
c语言一手
Rank: 1
等 级:禁止发言
帖 子:20
专家分:0
注 册:2011-1-6
收藏
得分:0 
回复 12楼 xufan123
提示: 作者被禁止或删除 内容自动屏蔽
2011-01-09 13:41
c语言一手
Rank: 1
等 级:禁止发言
帖 子:20
专家分:0
注 册:2011-1-6
收藏
得分:0 
回复 14楼 御坂美琴
提示: 作者被禁止或删除 内容自动屏蔽
2011-01-09 13:45
c语言一手
Rank: 1
等 级:禁止发言
帖 子:20
专家分:0
注 册:2011-1-6
收藏
得分:0 
回复 楼主 御坂美琴
提示: 作者被禁止或删除 内容自动屏蔽
2011-01-09 14:15
xufan123
Rank: 5Rank: 5
等 级:职业侠客
帖 子:226
专家分:318
注 册:2010-11-15
收藏
得分:0 
#include<stdio.h>
#include<string.h>
void main()
{
    char ch[]="abcdefg";
    int i,j;
    char c;
for(i=0;i<2;i++)
{
    c=ch[0];
    for(j=0;j<strlen(ch)-1;j++)
    {
        
        ch[j]=ch[j+1];
    }
    ch[j]=c;
}
puts(ch);
}  最后的一个移位不是很懂啊 这个是根据你的思路写的 就是长了点!
2011-01-09 14:20
点线面
Rank: 8Rank: 8
来 自:NO.-1
等 级:蝙蝠侠
帖 子:525
专家分:980
注 册:2011-1-3
收藏
得分:0 
类似地,如果我们要打印的是X形:
  *   *
   * *
    *
   * *
  *   *
同样可以利用这个思路完成,这题就作为思考题吧
程序代码:
#include <stdio.h>
#define IABS(x) ( (x) >= 0 ? (x) : -(x) ) //定义一个计算绝对值的宏
void print(int size) // size是这个菱形的半径,直径会是size * 2 + 1
{
    int x, y;
    for (y = -size; y <= size; y++)
    {
        for (x = -size; x <= size; x++)
        {
            if ( IABS(x) == IABS(y)) //x和y各自的绝对值的和,即 |x| + |y| <= size
                putchar('*');
            else
                putchar(' ');
        }
        putchar('\n');
    }
}

int main()
{
    print(3); //输出一个半径为5的菱形
    getchar();
    return 0;
}


第二个程序:
程序代码:
#include <stdio.h>

void print(int size)
{
    int x, y;

   for(y=0;y<size;putchar('\n'),y++)
    for(x=0;x<size;x++)
    {
        if(x==y||x+y==size-1)
            putchar('*');
        else
            putchar(' ');
    }
}

int main()
{
    print(6); //输出一个半径为5的菱形
    getchar();
    return 0;
}





小代码,大智慧
2011-01-09 14:26
c语言一手
Rank: 1
等 级:禁止发言
帖 子:20
专家分:0
注 册:2011-1-6
收藏
得分:0 
回复 19楼 点线面
提示: 作者被禁止或删除 内容自动屏蔽
2011-01-09 14:55
快速回复:C语言循环的小艺术(质数判断,菱形打印,奇数阶幻方,字符串循环移位 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013781 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved