| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 861 人关注过本帖
标题:谁能帮我看看这几句c语言错在哪里啊?谢谢!
只看楼主 加入收藏
yjcf
Rank: 1
来 自:西安工业大学
等 级:新手上路
帖 子:145
专家分:0
注 册:2008-3-29
收藏
 问题点数:0 回复次数:8 
谁能帮我看看这几句c语言错在哪里啊?谢谢!
第一个:
void main()   
{
int a,b,c,d,m;
scanf("请输入a,b,c,d四个数的值:\n",&a,&b,&c,&d);
m=max(max(max(a,b),c),d);
printf("四个数中,最大的为%d",m);
}

int max(int x,int y);
{
int z;  
if(x>y)
z=x;
else
z=y;
return(z);
}

第二个:
#include "stdio.h"
#include "math.h"
void main()
{
int year,month,days,r4,r100,r400,x,y;
printf("天数计算器\n");
printf("请输入年、月来计算天数\n");
printf("请输入年:");
scanf("%d",&year);
printf("请输入月:");
scanf("%d",&month);
/*   r4=year%4;
r100=year%100;
r400=year%400;
if((r4==0&&r100!==0)||r400==0)
x=year;
else
y=year;     */         /*这部分在判断是否闰年的时,选择语句提示出错,不知为何?*/
if(month<=0||month>=13)
printf("月份输入错误!");
else if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
days=31;
else if(month==4||month==6||month==9||month==11)
days=30;
else if(year=x&&month==2)
days=29;
else
days=28;
printf("%d年%d月有%d天",year,month,days);
}
第三个:
#include "stdio.h"
void main()
{
char a,b,c,d,e,x;
printf("请输入不超过五位的数字:\n");
scanf("%d",x);
a=x/10000;
b=x%10000/1000;
c=x%1000/100;
d=x%100/10;
e=x%10;
if(a!=0)
printf("这是一个五位数!\n");
else if(b!=0)
printf("这是一个四位数!\n");
else if(c!=0)
printf("这是一个三位数!\n");
else if(d!=0)
printf("这是一个二位数!\n");
else
printf("这是一个一位数!\n");
printf("这个数颠倒过来是:%d%d%d%d%d",e,d,c,b,a);
}
还有这个:
#include "stdio.h"
#include "math.h"
void main()
{
int year,month,day,leap,d,all,r4,r100,r400;
printf("请输入年月日,即可计算出该日是该年的第几天\n");
scanf("%d,%d,%d",year,month,day);
r4=year%4;
r100=year%100;
r400=year%400;
if((r4=0&&r100!=0)||r400=0)
leap=1;
else
leap=0;
switch(month)
{
case 1:d=31;break;
case 2:
{if(leap=1)
 d=29;
 else
 d=28;
}
case 3:d=31;break;
case 4:d=30;break;
case 5:d=31;break;
case 6:d=30;break;
case 7:d=31;break;
case 8:d=31;break;
case 9:d=30;break;
case 10:d=31;break;
case 11:d=30;break;
case 12:d=31;break;
}
for(d=0;month<=12&&month>=1;month--)
{
all=all+d;
}
printf("%d年%d月%d日是该年的第%d天",year,month,day,all);
}
搜索更多相关主题的帖子: c语言 
2008-03-29 15:56
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
一:函数未声明。

二:判断是否闰年中,r100!==0 是错误的,应该是!=;其它的语法与结果我没测试,希望你再测试一下。

三:变量类型应为int型,不是char型,另外输入x变量时未加&。经改正,测试正常。

四:未测试,也未详读。其实这么写很麻烦,直接year%4==0&&year%100!=0||year%400==0判断,更加简洁。下面把我作的一个小程序献上,供您参考,它也很不完善,算法也不算是最简洁的,但我想你参考一下还是很有好处的。
程序代码:
/*
经WIN-TC测试,正常运行。
*/
#include<stdio.h>
char hello[5][300]={{"*************************************************************\n"},
               {"您好,欢迎您来玩这个小游戏。您可以输入年、月、日或者年份、天数\n"
                "或者年份,系统为您判定它是一年中的第几天或者那年的几月几日或者\n"
                "判定它是闰年还是平年。请不要输入数字以外的字符,那样会造成不必\n"
                "要的麻烦。谢谢!\n"},
               {" 请输入年、月、日:\n"},
               {"请输入年份及天数:\n"},
               {"请输入年份:\n"} };
static int yue[2][13]={
                      {0,31,28,31,30,31,30,31,31,30,31,30,31},
                      { 0,31,29,31,30,31,30,31,31,30,31,30,31}} ;
int pr(int n)
{
        int c;
        c= n%4==0&&n%100!=0|| n%400==0;
        return c;
}
int panduan_1(int y,int r,int i)
{

        int j,n=0;
        for(j=0;j<y;j++)
            n+=yue[i][j];
        n+=r;
        return n;
}
void panduan_2(int n,int r,int i)
{
        int j=1,m=1;
        while(r>yue[i][j])
        {
                r-= yue[i][j];
                j++;
                m++;
         }
         printf("这是%d年,%d月,%d日\n",n,m,r);
}
void caidan()
{
        printf("%s\n\n",hello[0]);
        printf("请您作出选择:\n");
        printf("1.  输入年、月、日,求它是那年中的哪一天。\n"
               "2.  输入年份及天数,求它是那年中的哪月哪日。\n"
               "3.  输入年份,求它是平年或者是闰年。\n"
               "4.  退出。\n");
        printf("请输入选择:\n");
}
int main(void)
{
        int n,y,r,i,j;
        printf("%s%s\n",hello[0],hello[1]);
        do
        {
                caidan();
                scanf("\n%d",&j);
                puts(" ");
                while(j<1||j>4)
                {
                        printf("您输入的字符非法,请重新选择:\n");
                        caidan();
                        scanf("%d",&j);
                 }
        }
        while(j<0||j>5);
        while(j!=4)
        {
                switch(j)
                {
                        case 1:printf("请输入年、月、日,空格格开,enter结束输入:\n");
                                 scanf("\n %d %d %d",&n,&y,&r);
                                 puts(" ");
                                 i=pr(n);
                                 j=panduan_1(y,r,i);
                                 printf("它是%d年的第%d天\n",n,j);
                                 break;
                        case 2:printf("请输入年、天数,空格格开,enter结束输入:\n");
                                 scanf("%d %d",&n,&r);
                                 puts(" ");
                                 i=pr(n);
                                 panduan_2(n,r,i);
                                 break;
                        case 3:printf("请输入待测试的年份:\n");
                                 scanf("%d",&n);
                                 i=pr(n);
                                 if(i==0)
                                 {
                                     printf("它是平年。\n");
                                     break;
                                  }
                                 if(i==1)
                                 {
                                     printf("它是闰年。\n");
                                     break;
                                  }

                  }
                 caidan();
                 scanf("%d",&j);
         }
                 if(j==4)printf("谢谢您!再见!");



        getchar();











}
2008-03-29 16:37
yd4433
Rank: 1
等 级:新手上路
帖 子:404
专家分:0
注 册:2008-3-9
收藏
得分:0 
大概看了下 从第一题说把 m=max(max(max(a,b),c),d);  你那个求大小的没用过不说 你定义了空函数 后面竟然有返回直   地2题和地4题查不多  你没有算出来  是不是要用个计数器来统计下 出现的次数然后相加呢    地3题  你的  scanf("%d",x); 没有&, a=x/10000;
b=x%10000/1000;
c=x%1000/100;
d=x%100/10;
e=x%10; 你是想拆分 还是求余  拆份也错了 求几位也错了你看下  我没调试 你自己看下

------...-.-..-...-----........-------.......----.....------....||- - !
2008-03-29 16:53
yd4433
Rank: 1
等 级:新手上路
帖 子:404
专家分:0
注 册:2008-3-9
收藏
得分:0 
塞 2#的 还真厉害 这么长是不是可以转换下 看的我头都晕了 求多少天只要加上个计数器 然后相加呢  呵呵  你写的我看了思路很好 我说的 只是建议

------...-.-..-...-----........-------.......----.....------....||- - !
2008-03-29 16:56
yjcf
Rank: 1
来 自:西安工业大学
等 级:新手上路
帖 子:145
专家分:0
注 册:2008-3-29
收藏
得分:0 
首先感谢楼上两位了
2楼那位写的代码思路真得很好,受益良多阿~
还有就是,第二个错误中,就是改了r100!==0,可是算闰年时,还是有问题,闰年怎么算都是29天,真奇怪~~这到底是怎么回事呢?
2008-03-29 18:18
yjcf
Rank: 1
来 自:西安工业大学
等 级:新手上路
帖 子:145
专家分:0
注 册:2008-3-29
收藏
得分:0 
还有就是第一个该怎么声明阿
我该了几次都是错误的

泾溪石险人竞慎,终岁不闻倾覆人。却是平流无石处,时时闻说有沉论。
2008-03-29 18:31
yd4433
Rank: 1
等 级:新手上路
帖 子:404
专家分:0
注 册:2008-3-9
收藏
得分:0 
void main()   
{
int a,b,c,d,m;
printf("请输入a,b,c,d四个数的值:\n");
scanf("%d%d%d%d",&a,&b,&c,&d);
m=max(max(max(a,b),c),d);
printf("四个数中,最大的为%d",m);
}

------...-.-..-...-----........-------.......----.....------....||- - !
2008-03-29 22:44
yd4433
Rank: 1
等 级:新手上路
帖 子:404
专家分:0
注 册:2008-3-9
收藏
得分:0 
e  shangmian  de 那个有问题m=max(max(max(a,b),c),d); 我没调试 换个方法

#include<stdio.h>
#define  N 4               
void main()   
{
int a[N],i,max=0;
printf("请输入四个数的值:\n");
for(i=0;i<N;i++)
{
   scanf("%d",&a[i]);
     max=max>a[i]?max:a[i];
}    
 printf("四个数中,最大的为%d",max);
    
}

------...-.-..-...-----........-------.......----.....------....||- - !
2008-03-29 23:20
yjcf
Rank: 1
来 自:西安工业大学
等 级:新手上路
帖 子:145
专家分:0
注 册:2008-3-29
收藏
得分:0 
哦~~非常感谢楼上....

泾溪石险人竞慎,终岁不闻倾覆人。却是平流无石处,时时闻说有沉论。
2008-03-30 13:55
快速回复:谁能帮我看看这几句c语言错在哪里啊?谢谢!
数据加载中...
 
   



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

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