| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2919 人关注过本帖
标题:a~z打印字母求教
只看楼主 加入收藏
菜夹馍
Rank: 2
等 级:论坛游民
帖 子:29
专家分:58
注 册:2013-2-6
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:11 
a~z打印字母求教
我想要达到的效果是这样显示(为简便 仅写到G)
ABCDEFG
BCDEFGA
CDEFGAB
DEFGABC
EFGABCD
FGABCDE
GABCDEF
我写的程序现在只能做到
ABCDEFG
BCDEFG
CDEFG
DEFG
EFG
FG
G
以下是代码  将 void jiaru()删除或者变为注释即可正常运行
程序代码:
#include<stdio.h>
void jiaru(int a)     /*将这段程序屏蔽还有带@的参数传递那句删除 即可正常显示 第二次从A到Z显示输出函数 */
{
    int b;
for(b=65;b<b+a;b++)
printf("%c",b);
}
void jisuan(int h)    /*从A到Z显示输出字母函数,接收main()传递来的i值*/
{
    int j,k=0;
for( j=65;k<90;j++)
    {
        k=j+h;
{
    if(k%90==0)
{
    printf("%c",k);
    jiaru(h);        /*  @ 此处删除*/
    printf("\n");
    }
    else printf("%c",k);
}
}
}
main()                /*由i控制显示行数,i的值为显示的第几行并且从第几个字母开始,将i值传递给jisuan()*/
{                      /*例如i=3,则第三行首字母从C开始显示*/
    int i;
    for(i=0;i<26;i++)
    jisuan(i);

}
本人 新手自学 程序不规范处 见谅

[ 本帖最后由 菜夹馍 于 2013-7-4 23:02 编辑 ]
搜索更多相关主题的帖子: 字母 
2013-07-04 23:00
菜夹馍
Rank: 2
等 级:论坛游民
帖 子:29
专家分:58
注 册:2013-2-6
收藏
得分:0 
哦 我看到 结帖的 按扭了
2013-07-04 23:01
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:6 
程序代码:
#include <stdio.h>
#include <string.h>

void strshr(char source[])
{
    char tmp=source[0];
    int len=(int)strlen(source);
    int i;
    for(i=1;i<len;i++)
    {
        source[i-1]=source[i];
    }
    source[i-1]=tmp;
    source[i]='\0';
}
int main(int argc, char* argv[])
{
    char dest[]="abcdefghijklmnopqrstuvwxyz";
    int j;
    int dlen=(int)strlen(dest);
    for(j=0;j<dlen;j++)
    {
        printf("%s\n",&dest[0]);
        strshr(dest);
    }
    return 0;
}

收到的鲜花
  • 菜夹馍2013-07-05 21:09 送鲜花  5朵  

DO IT YOURSELF !
2013-07-04 23:21
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
abcdefghijklmnopqrstuvwxyz
bcdefghijklmnopqrstuvwxyza
cdefghijklmnopqrstuvwxyzab
defghijklmnopqrstuvwxyzabc
efghijklmnopqrstuvwxyzabcd
fghijklmnopqrstuvwxyzabcde
ghijklmnopqrstuvwxyzabcdef
hijklmnopqrstuvwxyzabcdefg
ijklmnopqrstuvwxyzabcdefgh
jklmnopqrstuvwxyzabcdefghi
klmnopqrstuvwxyzabcdefghij
lmnopqrstuvwxyzabcdefghijk
mnopqrstuvwxyzabcdefghijkl
nopqrstuvwxyzabcdefghijklm
opqrstuvwxyzabcdefghijklmn
pqrstuvwxyzabcdefghijklmno
qrstuvwxyzabcdefghijklmnop
rstuvwxyzabcdefghijklmnopq
stuvwxyzabcdefghijklmnopqr
tuvwxyzabcdefghijklmnopqrs
uvwxyzabcdefghijklmnopqrst
vwxyzabcdefghijklmnopqrstu
wxyzabcdefghijklmnopqrstuv
xyzabcdefghijklmnopqrstuvw
yzabcdefghijklmnopqrstuvwx
zabcdefghijklmnopqrstuvwxy

DO IT YOURSELF !
2013-07-04 23:25
cheetah
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:120
专家分:118
注 册:2013-6-29
收藏
得分:7 
代码很简单,几个循环搞定!如下:
#include <stdio.h>
void main ()
{
     int i, j, k;
      
     for (i='A'; i<='Z'; i++)
     {
         for (j=i; j<='Z'; j++)
         printf ("%c",j);
         for (k='A'; k<=i-1; k++)
         printf ("%c",k);
         printf ("\n");
     }
}

[ 本帖最后由 cheetah 于 2013-7-5 13:18 编辑 ]
收到的鲜花
  • 菜夹馍2013-07-05 21:10 送鲜花  5朵  

天道酬勤
2013-07-05 08:09
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:7 
程序代码:
#include <stdio.h>

int main ()
{
    for( int i=0; i<26; ++i )
    {
        for( int j=0; j<26; ++j )
            printf( "%c", 'A'+(i+j)%26 );
        printf( "\n" );
    }

    return 0;
}
收到的鲜花
  • 菜夹馍2013-07-05 21:12 送鲜花  5朵  
2013-07-05 08:26
菜夹馍
Rank: 2
等 级:论坛游民
帖 子:29
专家分:58
注 册:2013-2-6
收藏
得分:0 
以下是引用rjsp在2013-7-5 08:26:36的发言:

#include  
 
int main ()
{
    for( int i=0; i<26; ++i )
    {
        for( int j=0; j<26; ++j )
            printf( "%c", 'A'+(i+j)%26 );
        printf( "\n" );
    }
 
    return 0;
}
你好,我想问问,在你的程序中,第二个FOR循环里,的printf("%c",'A'+(i+j)%26);里的这个 %26是什么意思,挠头啊,%26是用来做打印到第26个字母运行输出换行语句的 作用么  为什么 不会显示例如'A'+(i+j)  求余26的 余数呢?
是不是 程序达到条件A+(i+j) 求余26 余数为零这个条件 才会跳出第二个for循环 然后运行 换行语句?

[ 本帖最后由 菜夹馍 于 2013-7-5 21:42 编辑 ]
2013-07-05 21:35
菜夹馍
Rank: 2
等 级:论坛游民
帖 子:29
专家分:58
注 册:2013-2-6
收藏
得分:0 
以下是引用wp231957在2013-7-4 23:21:35的发言:

#include  
#include  
 
void strshr(char source[])
{
    char tmp=source[0];
    int len=(int)strlen(source);
    int i;
    for(i=1;i
你好 ,你的程序 有点复杂,我这个新手需要时间消化消化 你是不是 使用 的循环队列?
2013-07-05 21:43
cheetah
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:120
专家分:118
注 册:2013-6-29
收藏
得分:0 
你好,他这里的%26是i+j对26进行求余的,而不是‘A’+( i+j),这是因为“+”和“%”的优先级都没有“()”高,所以是i+j对26的求余。
还有即便使用一种方法让‘A’+(i+j)对26进行求余输出的结果也不可能是整数,因为输出的格式说明为:%c所以只能是字符,所以这个你就更不要纠结了。
再回答你第二个问题:跳不跳出第二个for循环不取决于‘A’+(i+j)%26的结果如何,而是取决于第二个for循环里的条件判断表达式。

[ 本帖最后由 cheetah 于 2013-7-7 10:00 编辑 ]
收到的鲜花
  • 菜夹馍2013-07-07 21:37 送鲜花  5朵  

天道酬勤
2013-07-07 09:26
菜夹馍
Rank: 2
等 级:论坛游民
帖 子:29
专家分:58
注 册:2013-2-6
收藏
得分:0 
回复 9楼 cheetah
哈哈  谢谢  看到 你的 解释 之后 豁然 开朗 啊!哈哈哈哈  哈哈哈哈
2013-07-07 21:36
快速回复:a~z打印字母求教
数据加载中...
 
   



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

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