| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1549 人关注过本帖
标题:代码编译无错,可运行时为什么第二个for语句的结果没有运行出来::>_<:: ?? ...
只看楼主 加入收藏
ddlp
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2016-4-25
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:8 
代码编译无错,可运行时为什么第二个for语句的结果没有运行出来::>_<:: ???
#include<stdio.h>
#include<math.h>
int main()
{
    int f,x=0;
    f=x*x+2*x+5;
    int g=7,p=17,t=3;
    int i=0;
    int y[10];double d[10];
    for(x=0;x<4;x++)
    {
        y[i] = x*x+2*x+5;
        printf("输出y=%d\n",y[i]);
        d[i] = pow(g,y[i]);
        printf("d[i]=%lf\n",d[i]);
    }
    double s[200],k[200];
    for(s[i]=0;s[i]>0;s[i]++)
    {
        k[i]=pow(g,s[i]);
        printf("k[i]=%lf\n",k[i]);
        if(d[i] == pow(g,s[i]))
            printf("s[i]=%lf\n",s[i]);
    }

    return 0;
}

[此贴子已经被作者于2016-4-25 22:51编辑过]

搜索更多相关主题的帖子: double include 
2016-04-25 22:45
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:3 
首先你的程序是莫名其妙,其次 for(s[i]=0;s[i]>0;s[i]++)开始时s[i]=0,终止条件是s[i]>0,for里面的根本不会执行。

   唯实惟新 至诚致志
2016-04-25 22:56
ddlp
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2016-4-25
收藏
得分:0 
回复 2楼 qq1023569223
发现了,
#include<stdio.h>
#include<math.h>
int main()
{
    int f,x=0;
    f=x*x+2*x+5;
    int g=7,p=17,t=3;
    int i=0;
    int y[10];double d[10];
    for(x=0;x<4;x++)
    {
        y[i] = x*x+2*x+5;
        printf("输出y=%d\n",y[i]);
        d[i] = pow(g,y[i]);
        printf("d[i]=%lf\n",d[i]);
    }
    double s[200],k[200];
    for(s[i]=0;s[i]<4;s[i]++)
    {
        for(i=0;i<4;i++)
        {
            if(d[i] == pow(g,s[i]))
                printf("s[i]=%lf\n",s[i]);
        }
    }
    return 0;
}
然后运行到第二个for循环的时候,停止了
2016-04-25 22:59
Zero_
Rank: 2
等 级:论坛游民
帖 子:4
专家分:12
注 册:2016-2-24
收藏
得分:3 
第二个for里面首先给s[i]=0;然后终止条件是s[i]>0;直接终止了。。。你下面写的好迷。。。
2016-04-25 22:59
zhulei1978
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:53
帖 子:1351
专家分:1200
注 册:2006-12-17
收藏
得分:3 
你那个i一直是0,
我猜你是不是想写成这样

 for(i=0;i<4;i++)
     {
         y[i] = i*i+2*i+5;
         printf("输出y=%d\n",y[i]);
         d[i] = pow(g,y[i]);
         printf("d[i]=%lf\n",d[i]);
     }

其实我就是改变社会风气,提高少女素质,刺激电影市道,提高年轻人内涵,玉树临风,风度翩翩的整蛊专家,我名叫古晶,英文名叫JingKoo!
2016-04-25 23:31
ddlp
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2016-4-25
收藏
得分:0 
回复 5楼 zhulei1978
第一个for循环结果是对的,不用管。不过还是三克油
2016-04-25 23:41
zhulei1978
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:53
帖 子:1351
专家分:1200
注 册:2006-12-17
收藏
得分:0 
for(x=0;x<4;x++)
     {
         y[i] = x*x+2*x+5;
         printf("输出y=%d\n",y[i]);
         d[i] = pow(g,y[i]);
         printf("d[i]=%lf\n",d[i]);
     }

但是写成你那样,只有d[0]赋了值,d[1],d[2],d[3]全都没有赋值

你第二个循环中访问到了d[i],     d[1],d[2],d[3]都是随机值,第二个循环的输出结果肯定不对了

其实我就是改变社会风气,提高少女素质,刺激电影市道,提高年轻人内涵,玉树临风,风度翩翩的整蛊专家,我名叫古晶,英文名叫JingKoo!
2016-04-26 00:02
zhulei1978
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:53
帖 子:1351
专家分:1200
注 册:2006-12-17
收藏
得分:0 
你那个s只用到了一个,用变量就好了,数组浪费了

double s,k[200];
for(s=0;s<4;s++)
     {
         for(i=0;i<4;i++)
         {
             if(d[i] == pow(g,s))
                 printf("s=%lf\n",s);
         }
     }

其实我就是改变社会风气,提高少女素质,刺激电影市道,提高年轻人内涵,玉树临风,风度翩翩的整蛊专家,我名叫古晶,英文名叫JingKoo!
2016-04-26 00:30
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:3 
不过你的输入printf("k[i]=%lf\n",k[i]);不应该是这个样子吗?我觉得你的本意应该有两个输出参数吧?
#include <stdio.h>
int main()
{
    int i,arr[10]={0,1,2,3,4,5,6,7,8,9};
    for(i=0;i<10;i++)
    printf("arr[%d]=%d\n",i,arr[i]);
}
2016-04-26 08:55
快速回复:代码编译无错,可运行时为什么第二个for语句的结果没有运行出来::>_<: ...
数据加载中...
 
   



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

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