| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 693 人关注过本帖
标题:关于循环语句while
只看楼主 加入收藏
学学霸
Rank: 2
等 级:论坛游民
帖 子:41
专家分:24
注 册:2015-5-16
结帖率:50%
收藏
 问题点数:0 回复次数:11 
关于循环语句while
程序如下:
程序代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
    float a;
    float c=1;
    int n;
    int b=1;
    printf("请输入要有进行乘运算的数");
    scanf("%f",&a);
    printf("要得出的__次方\b\b\b");
    scanf("%d",&n);
    c=a;
    while(b<=n)
    {
     c=c*a;
     b++;
    }
    printf("%.4f的%d次方=%.2f",a,n,c);
    
    system("pause");
    return 0;
}

这是一个算一个数的n次方的程序
但为什么我输入2的3次方结果是16?
难道是while的条件不是b<=n吗?
2015-06-07 09:01
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
printf("要得出的__次方\b\b\b");
    scanf("%d",&n);
    c=a;               //c=1;
    while(b<=n)

剑栈风樯各苦辛,别时冰雪到时春
2015-06-07 09:08
醉祁今朝
Rank: 2
等 级:论坛游民
威 望:1
帖 子:48
专家分:76
注 册:2015-5-18
收藏
得分:0 
while(b <= n)上面 c = a;你给c赋值为a,就是说运行c = c * a; 的时候,比如说a 是2 ,b 是3,这个时候执行while语句第一次c就成了4,第二次c成了8,第三次c就成了16.去掉那个赋值语句。

多艰难 都要走下去
2015-06-07 09:14
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 4楼 醉祁今朝
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
    float a;
    float c=1;
    int n;
    int b=1;
    printf("请输入要有进行乘运算的数");
    scanf("%f",&a);
    printf("要得出的__次方\b\b\b");
    scanf("%d",&n);
    c=pow(a,n);
    printf("%.4f的%d次方=%.2f",a,n,c); 
    system("pause");
    return 0;
}

剑栈风樯各苦辛,别时冰雪到时春
2015-06-07 09:18
醉祁今朝
Rank: 2
等 级:论坛游民
威 望:1
帖 子:48
专家分:76
注 册:2015-5-18
收藏
得分:0 
回复 5楼 林月儿
嗯 是不是没有必要调用<stdlib.h>头文件?楼主的那个,还有这个......

多艰难 都要走下去
2015-06-07 09:22
醉祁今朝
Rank: 2
等 级:论坛游民
威 望:1
帖 子:48
专家分:76
注 册:2015-5-18
收藏
得分:0 
是那个system("pause");要调用它么?

多艰难 都要走下去
2015-06-07 09:23
学学霸
Rank: 2
等 级:论坛游民
帖 子:41
专家分:24
注 册:2015-5-16
收藏
得分:0 
谢谢,可以了
2015-06-07 09:24
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 6楼 醉祁今朝
system("pause");

用了#include<stdlib.h>

剑栈风樯各苦辛,别时冰雪到时春
2015-06-07 09:24
你欠我人情
Rank: 2
等 级:论坛游民
威 望:1
帖 子:46
专家分:52
注 册:2015-6-5
收藏
得分:0 
如果运行4的2次方,当b=1,c=4x4,当b=2,c=16x4,所以结果是64.

我是小白我是小白我是小白我是小白我是小白我是小白
2015-06-07 10:52
你欠我人情
Rank: 2
等 级:论坛游民
威 望:1
帖 子:46
专家分:52
注 册:2015-6-5
收藏
得分:0 
while(b+1<=n)
    {
     c=c*a;
     b++;
    }


这样子搞出来也没问题了少运算一次,不知道这样做行不行

我是小白我是小白我是小白我是小白我是小白我是小白
2015-06-07 10:55
快速回复:关于循环语句while
数据加载中...
 
   



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

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