| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 718 人关注过本帖
标题:实在是没能找出出错的地方,程序本身无语法错误,请大家帮帮忙。
只看楼主 加入收藏
p_y
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-1-3
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
实在是没能找出出错的地方,程序本身无语法错误,请大家帮帮忙。
/*问题:统计并输出100-999之间所有的"水仙花"数及其个数。
    "水仙花数"是指一个3位数,其各个位上数字的立方之和等于该数本身。如:153
编程要求:
    ①自定义函数,原型为int sxh(int n,int x[]),
      计算x数组中所有元素值的立方和是否等于n的值,
      如果相等,说明n是"水仙花数",则返回1,否则返回0。(20分)
    ②自定义函数,原型为void resolven(int n,int x[]),
      将整数n值各个位上的数字,分别存储到数组x的各个元素中。假设n值为153,分解为1、5、3,分别存储到元素x[0]、x[1]、x[2]中,分解结构通过数组返回到主调函数。(20分)
    ③主函数中,定义数组及有关变量:int a[3];,通过单循环控制100-999的所有数;
      调用函数resolven(k,a)将k的各位值分解到数组a的元素中;
      调用函数sxh(k,a)判断任一正整数k是否"水仙花"数,若是则统计其个数,并输出该"水仙花"数(输出6位宽度)。(50分)
    ④最后输出统计结果,输出单独占一行。(10分)*/
#include"stdio.h"
#include"stdlib.h"
int sxh(int n)
{
    int a,b,c;
    a=n/100;b=(n/10)%10;c=n%100;
    if(a*a*a+b*b*b+c*c*c==n)   return 1;
    else return 0;
}

void main()
{
    int w,k,gs=0;
    FILE *fp;
    if((fp=fopen("C201606084235.dat","wb+"))==NULL)
    {
        printf("文件建立失败!");
        exit(0);
    }
    for(k=100;k<=999;k++)
    {
        if(sxh(k))
        {
            fwrite(&k,sizeof(int),1,fp);
        }
    }
    rewind(fp);
    while(fread(&w,sizeof(int),1,fp))
    {
        gs++;
        printf("%6d",w);
    }
    printf("\n总个数:%d\n",gs);
    fclose(fp);
}
搜索更多相关主题的帖子: 水仙花 统计 元素 
2017-01-03 16:16
p_y
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-1-3
收藏
得分:0 
抱歉 前面文字和程序无关 被我弄错了
2017-01-03 16:19
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:10 
1楼的乱七八糟
2楼的乱七八糟

难怪没有人回复

DO IT YOURSELF !
2017-01-03 21:00
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:10 
以下是引用p_y在2017-1-3 16:19:30的发言:

抱歉 前面文字和程序无关 被我弄错了

与前面的文字无关:
#include"stdio.h"
#include"stdlib.h"
#include <math.h>

int sxh(int m, int n)
{
    int k, sum=0;
    for(k=m; k; k/=10)
        sum += pow(k%10, n);
    return (sum == m);
}

void main()
{
    int w,k,gs=0;
    FILE *fp;
    if((fp=fopen("C201606084235.dat","wb+"))==NULL)
    {
        printf("文件建立失败!");
        exit(0);
    }
    for(k=100; k<=999; k++)
    {
        if(sxh(k, 3))
        {
            fwrite(&k,sizeof(int),1,fp);
        }
    }
    rewind(fp);
    while(fread(&w,sizeof(int),1,fp))
    {
        gs++;
        printf("%6d",w);
    }
    printf("\n总个数:%d\n",gs);
    fclose(fp);
}
2017-01-03 22:35
快速回复:实在是没能找出出错的地方,程序本身无语法错误,请大家帮帮忙。
数据加载中...
 
   



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

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