| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 557 人关注过本帖
标题:C语言编程问题
只看楼主 加入收藏
platolgq
Rank: 2
来 自:江西
等 级:论坛游民
帖 子:74
专家分:87
注 册:2011-2-24
结帖率:80%
收藏
已结贴  问题点数:5 回复次数:9 
C语言编程问题
各位高手给我看看while循环在这里的作用是什么??
#include <stdio.h>
void main()
{
 int i,a[10];
 for(i=0;i<10;i++)
  scanf("%d",&a[i]);
 while(i>0)
 {
   printf("3%d") a[--i]; /* a[--i],这个在这里的作用是什么*/
   if(!(i%5))            /*这个是么的意思*/
    putchar("\n");
 }
}

搜索更多相关主题的帖子: C语言 
2011-03-03 10:52
wujieru
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:1108
专家分:1939
注 册:2010-10-9
收藏
得分:0 
拒绝回答
2011-03-03 10:53
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:2 
printf("3%d") a[--i];
这句有问题吧, 我觉得应该是
printf ("%3d",a[--i]);

修改以后的程序。
程序代码:
#include <stdio.h>

int main (void) {

        int i,a[10];
        for(i=0;i<10;i++) {
                scanf ("%i",&a[i]);
        }
        while(i>0) {
                printf ("%3d",a[--i]); //先打印a[i]的值,然后i减一

                if(!(i%5))             //如果i=5的时候,产生回车,因为i=5的时候,i%5=0,而在C里真值为1,所以,用否运算符将0转成1
                                     
                printf ("\n");
        }
        return 0;

}


[ 本帖最后由 ansic 于 2011-3-3 11:22 编辑 ]

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-03-03 11:13
hbgcj
Rank: 1
等 级:新手上路
帖 子:12
专家分:8
注 册:2011-3-3
收藏
得分:1 
以下是引用ansic在2011-3-3 11:13:27的发言:

printf("3%d") a[--i];
这句有问题吧, 我觉得应该是
printf ("%3d",a[--i]);

修改以后的程序。
#include <stdio.h>

int main (void) {

        int i,a[10];
        for(i=0;i<10;i++) {
                scanf ("%i",&a);
        }
        while(i>0) {
                printf ("%3d",a[--i]); //先打印a的值,然后i减一

                if(!(i%5))             //如果i=5的时候,产生回车,因为i=5的时候,i%5=0,而在C里真值为1,所以,用否运算符将0转成1
                                    
                printf ("\n");
        }
        return 0;

}

先i减1,再打印。
在C里0为假,非0为真。
2011-03-03 11:27
犬虫门心
Rank: 8Rank: 8
来 自:西安
等 级:蝙蝠侠
帖 子:209
专家分:753
注 册:2011-1-25
收藏
得分:2 
#include <stdio.h>
void main()
{
    int i,a[10];
    for(i=0;i<10;i++)
      scanf("%d",&a[i]); //首先要注意这里。当for循环结束后,i的值为10
    while(i>0)
    {
       printf("3%d") a[--i]; //--i是:先减,所以第一次输出的是a[9]元素的值
       if(!(i%5))           //C语言对条件表达式(比如这里的if()中的表达式)的处理原则是:0为假,非0为真
                            //!(i%5)为“非0”,这相当于i%5等于0,那么意思很明显:当i的值是5的倍数时,输出\n
                            //就是每输出5个数字就另起一行。
        putchar("\n");
    }
}

当一名对得起学生学费的老师,一直是我的目标!我会更努力的!
2011-03-03 11:35
platolgq
Rank: 2
来 自:江西
等 级:论坛游民
帖 子:74
专家分:87
注 册:2011-2-24
收藏
得分:0 
回复 3楼 ansic
这是我昨晚做的一道题,我昨晚怎么算都的不出来。看来是题目有问题了
谢了

C种的自学者
2011-03-03 11:35
wolonga123
Rank: 2
等 级:论坛游民
帖 子:25
专家分:35
注 册:2010-9-16
收藏
得分:0 
#include <stdio.h>

int main (void) {

        int i,a[10];
        for(i=0;i<10;i++) {
                scanf ("%i",&a);
        }
        while(i>0) {
                printf ("%3d",a[--i]); //先i减一,即输出a[i-1]的值

                if(!(i%5))             //如果i=5的时候,产生回车,因为i=5的时候,i%5=0,而在C里真值为1,所以,用否运算符将0转成1.%是取余运算符,本例中只要是5的倍数取余就不0,!0即不真,运行程序
                                    
                printf ("\n");
        }
        return 0;

2011-03-03 19:32
lang2004
Rank: 2
等 级:论坛游民
帖 子:28
专家分:24
注 册:2011-1-9
收藏
得分:0 
先i减一,再打印a[i]
2011-03-03 22:29
天黑额
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-3-3
收藏
得分:0 
6楼正解
2011-03-03 23:40
z8869113
Rank: 2
等 级:论坛游民
帖 子:44
专家分:14
注 册:2010-12-14
收藏
得分:0 
5楼正解~写的很清楚
2011-03-03 23:53
快速回复:C语言编程问题
数据加载中...
 
   



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

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