| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 498 人关注过本帖
标题:新人求教:关于运行问题!
只看楼主 加入收藏
白金伯爵
Rank: 2
等 级:论坛游民
帖 子:47
专家分:48
注 册:2015-9-21
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:4 
新人求教:关于运行问题!
最近几天写代码总出现一个问题:代码编译0错误0警告,构建0错误0警告,但是一运行就出现该*.exe程序已关闭,没有输出结果。
想了好久,可能有两个原因:1、编译器的问题。2、栈溢出的问题。但是不能确定,不知其所以然。
求教大神!
举例代码:
1.
程序代码:
//求数列 2/1+3/2+5/3+8/5+13/8+..... 前20项的和
#include<stdio.h>
int main(void)
{
    int a[20],b[20],i;
    float g[20],sum[20];
    a[0]=2;
    b[0]=1;
    g[0]=2;
    sum[0]=2;
    for(i==1;i<20;i++)
    {
        a[i]=a[i-1]+b[i-1];
        b[i]=a[i-1];
        g[i]=a[i]/b[i];
        sum[i]=sum[i-1]+g[i];
    }
    printf("Sum = %f\n",sum);
    return 0;
}

2、
程序代码:
//网络问题:二维平分西瓜。自编代码
/*
描述:地面上有12个西瓜,它们的重量(单位为“两”,为计算方便已全部转化为整数,如98即为9斤8两)如下:
98,93,57,64,50,82,18,34,69,56,16,61
(1)设计程序:实现对以上12个瓜“二堆均分”(每堆6个,两堆重量相等),要求打印输出均分的各种可能方案;
(a)输入:数据输入由程序完成,执行程序后不需要任何数据输入;
(b)输出:程序执行后输出以下格式, X分别代表一个西瓜重量的数字,如下:
No1:X  X  X  X  X  X,X  X  X  X  X  X
No2:X  X  X  X  X  X,X  X  X  X  X  X
……
注:均分的两堆如果只有摆放顺序不一样,算一种输出结果。
*/

#include<stdio.h>
int main(void)
{
    int xg[12]={98,93,57,64,50,82,18,34,69,56,16,61};                 //定义西瓜数组,xg[i]代表第i个西瓜的重量
    //float pj;                                                        //定义西瓜数组中所有西瓜的平均重量
    int i,j,k,x,y,z;                                                 //定义西瓜数组这种被将被挑选的6个西瓜的可能编号
    //float a[12];                                                     //定义一个新的数组,这个数组中的数代表每个西瓜与平均数的差
    int sum1 = 0;                                                    //定义西瓜数组中所有西瓜的总重量
    int sum2 = 0;
    //pj = sum1 / 12;                                                  //西瓜数组平均重量的数学公式
    for(i==0;i<12;i++)
    {
        sum1 = sum1 + xg[i];                                           //累加得到西瓜数组西瓜的总重量
    }
    printf("这些西瓜的总重量为:%d\n",sum1);
    //printf("这些西瓜的平均重量为:%f\n",pj);
    /*for(i==0;i<12;i++)
    {
        a[i] = xg[i] - pj;                                             //求得数组a[12]每一个值
        printf("数组a[%d] = %f\n",i,a[i]);
    }*/
    for(i==0;i<7;i++)
    {
        for(j==i+1;j<8;j++)
        {
            for(k==j+1;k<9;k++)
            {
                for(x==k+1;x<10;x++)
                {
                    for(y==x+1;y<11;y++)
                    {
                        for(z==y+1;z<12;z++)
                        {
                            sum2 = xg[i] + xg[j] + xg[k] + xg[x] + xg[y] +xg[z];
                            if (sum2 == sum1/2)
                            {
                                printf("符合条件的组合有:\n");
                                printf("%d,%d,%d,%d,%d,%d,%d,%d\n",xg[i],xg[j],xg[k],xg[x],xg[y],xg[z]);
                            }
                        }
                    }
                }
            }
        }
    }
    return 0;
}
搜索更多相关主题的帖子: include 编译器 
2015-09-30 10:05
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:10 
你从来不看编译器的提示吗?
for(i==1;i<20;i++) warning C4553: '==' : operator has no effect; did you intend '='?
g[i]=a[i]/b[i];  warning C4244: '=' : conversion from 'int' to 'float', possible loss of data
2015-09-30 10:11
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:10 
《C陷阱与缺陷》一书中的第一个陷阱就是楼主所遇到的问题
2015-09-30 10:28
白金伯爵
Rank: 2
等 级:论坛游民
帖 子:47
专家分:48
注 册:2015-9-21
收藏
得分:0 
回复 2楼 rjsp
我在编译的时候出现过这个警告,但是更改了变量类型之后就没有了警告,没有错误,但是输出没有。。。
2015-09-30 10:30
白金伯爵
Rank: 2
等 级:论坛游民
帖 子:47
专家分:48
注 册:2015-9-21
收藏
得分:0 
回复 3楼 hjx1120
谢谢!
2015-09-30 10:40
快速回复:新人求教:关于运行问题!
数据加载中...
 
   



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

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