| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3262 人关注过本帖
标题:[求助]关于for循环的2个题目~字母菱形和数字统计
只看楼主 加入收藏
采书大盗
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2008-4-5
收藏
 问题点数:0 回复次数:10 
[求助]关于for循环的2个题目~字母菱形和数字统计
小弟我才开始学c语言编程不久,还请各位高手多指导~

这个是前2天我们老师布置的2到课本上的题目,但是想了半天没想出来————谁来帮我下啊?

(1)统计区间【1000,9999】内所有被7整除,且千位与个位数字之和为7的整数个数。
这题我想用if来做,可做来做去就是不对,另外,我也不知道怎么去实现统计数字的个数……

(2)设计程序打印出以下字母的图案:菱形为N(奇数,键盘输入)行,第一行为字母A,第二行为BCD,第三行为CDEFG,以此类推。菱形上下对称相同。例如,输入N=7时,菱形如图:
                A
              B C D
            C D E F G
          D E F G H I J
            C D E F G
              B C D
                A

这题我不知道为什么,就是不能正确输出字母……做个循环就出来满屏幕的字母,不知道该怎么把那些字母一好好的输出了……

各位高手帮帮我啊~

[[it] 本帖最后由 采书大盗 于 2008-4-5 13:46 编辑 [/it]]
搜索更多相关主题的帖子: 菱形 字母 数字 统计 
2008-04-05 13:37
now
Rank: 1
来 自:广州
等 级:新手上路
帖 子:544
专家分:0
注 册:2007-11-9
收藏
得分:0 
第二题
程序代码:
#include<stdio.h>
#include<math.h>
int main(void)
{
    int lines;
    int i,j,k;
    char first;
    printf("请输入一正奇数(1~17)");
    scanf("%d",&lines);
    while(lines%2==0 || lines<=0 || lines>17)          //lines大于17后,将打印非大写字母;
    {
        printf("ERROR!重新输入:");
        scanf("%d",&lines);
    }
    for(i=-(lines/2);i<=lines/2;i++)
    {
        first='A'+(lines/2-abs(i));             //控制每行首字符;
        for(j=abs(i);j>0;j--)
            printf(" ");
        for(k=lines;k>2*abs(i);k--)       //打印字符;
        {
            printf("%c",first++);
        }
        printf("\n");
    }
    return 0;
}


[[it] 本帖最后由 now 于 2008-4-6 13:48 编辑 [/it]]

GIS
Geographic Information System
你在哪里?——》你的坐标?
2008-04-05 14:35
江湖无痕
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2008-4-4
收藏
得分:0 
第一道题,你用i,j,k,t分别表示四个位上的数字,用几个循环看看!!
2008-04-05 14:45
now
Rank: 1
来 自:广州
等 级:新手上路
帖 子:544
专家分:0
注 册:2007-11-9
收藏
得分:0 
第一题:能被7整除,n%7==0;
        个位千位之和为7, (n/1000+n%10)==7;
自己动手做下。

GIS
Geographic Information System
你在哪里?——》你的坐标?
2008-04-05 14:48
采书大盗
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2008-4-5
收藏
得分:0 
2楼的谢谢了~只是没看明白first='A'+lines/2-abs(i);   里的abs(i);是什么意思,是不是这个函数可以定义字母?能讲一下吗?书上没找到……
另外,第一题我想知道的是如何实现“计数”,找那些数字的语句我基本没什么问题,但是我不知道该如何统计已找出来的数字的个数。

[[it] 本帖最后由 采书大盗 于 2008-4-5 15:07 编辑 [/it]]

只是一个菜鸟而已~没什么~真的!
2008-04-05 15:06
采书大盗
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2008-4-5
收藏
得分:0 
我承认我脑袋短路了…………最后自己突然灵感来袭,自己做出来了……第一题,其实很简单的……判断条件,然后加1就可以了…………
#include<stdio.h>
#include<math.h>
main()
{  int s,sn,n;
for(n=1000;n<=9999;n++)
   if(n%7==0&&(n/1000+n%10)==7) s=s+1;

printf("s=%d\n",s);
     getch();

}

只是一个菜鸟而已~没什么~真的!
2008-04-05 16:41
jiangshaoye
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-4-5
收藏
得分:0 
把上面的改了下,我发现楼上的程序里定义的什么s,sn都没用到,直接给删除了,还有几十输出结果可能不是很好看!
#include<stdio.h>
#include<math.h>
main()
{  int s,sn,n;
for(n=1000;n<=9999;n++)
   if(n%7==0&&(n/1000+n%10)==7) s=s+1;

printf("s=%d\n",s);
     getch();

}
2008-04-05 22:32
now
Rank: 1
来 自:广州
等 级:新手上路
帖 子:544
专家分:0
注 册:2007-11-9
收藏
得分:0 
回复 5# 的帖子
abs(i);//数学库函数,取绝对值;
first='A'+(lines/2-abs(i));// 控制每行首字母;例:'A'+0=='A','A'+1=='B';

GIS
Geographic Information System
你在哪里?——》你的坐标?
2008-04-06 13:52
dairuixiang999
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2008-4-9
收藏
得分:0 
#include <stdio.h>
main()
{
  int n,i,j,m;
  char c;
  printf("请输入一个奇数:");
L:  scanf("%d",&n);
  if(n<0||n>26||(n%2==0))
  {
      printf("输入错误!\n重新输入:");
     goto  L;
}
    for(i=1;i<=n;++i)
    {
       if(i<=(n+1)/2)
       {
           m=i-1;
         for(j=i;j<=n/2;++j)
             printf(" ");
         for(j=0;j<2*i-1;++j)
         {
             c='A'+m++;
             printf("%c",c);
       }
         printf("\n");
       }  
       if(i>(n+1)/2)
       {
         m=n-i;
       for(j=1;j<=i-(n+1)/2;++j)
             printf(" ");
         for(j=0;j<2*(n-i)+1;++j)
         {
             c='A'+m++;
             printf("%c",c);
       }
         printf("\n");
       }

    }
}
2008-04-09 16:15
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
第一题
#include<stdio.h>
int main(void)
{
        int i,j=0;
        for(i=1000;i<10000;i++)
                if(i%7==0&&i/1000+i%10==7)
                {
                        printf("  %d",i);
                        j++;
                        if(j%10==0)
                        puts(" ");
                }
        printf("\n\n符合这个条件的整数个数为 %d 个。\n",j);

        getch();
}
2008-04-09 16:54
快速回复:[求助]关于for循环的2个题目~字母菱形和数字统计
数据加载中...
 
   



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

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