c语言初级问题

作者&投稿:铎弯 (若有异议请与网页底部的电邮联系)
C语言最初级的问题~

你看下acsII码表 ,加32是大小转小写 小写转大写要减去32

int max(int x, int y);
int max(int x, int y)
{
int z;
if(x>y) z=x;
else z=y;
return z;
}
或者是不要第一行。函数定义时函数原型后面不能加分号,函数声明是函数原型后面要加分号。

#include<stdio.h>

int f(int,int,int);

void main()
{
int year,month,day,Number;
scanf("%d %d %d",&year,&month,&day);
Number=f(year,month,day);
printf("number is %d day\n",Number+day);
}

int f(int year,int month,int day)
{
int number1=0,i;
int a[13];
if((year%4==0 && year%100!=0)||(year%400==0))
{
int a[13] = {0,31,29,31,30,31,30,31,31,30,31,30,31};
}
else
{
int a[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
}
for(i=0;i<month;i++)
{
number1=number1+a[i];
}
return(number1);
}

我回答你第二次改过的错吧,因为你定义a[13]在if结构中,于是其它的调用会出错,请这样修改就可以了。

#include<stdio.h>
void main()
{
int f(int year,int month,int day);
int year,month,day,Number;
scanf("%d %d %d",&year,&month,&day);
Number=f(year,month,day);
printf("number is %d day\n",Number+day);
}
int f(int year,int month,int day)
{
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int number1,i;
number1=0;
if((year%4==0 && year%100!=0)||(year%400==0))
a[2]=29;
for(i=0;i<month;i++)
{
number1=number1+a[i];
}
return(number1);
}

#include<stdio.h>
void main()
{
int f(int year,int month,int day);
int year,month,day,Number;
scanf("%d %d %d",&year,&month,&day);
Number=f(year,month,day);
printf("number is %d day\n",Number+day);
}
int f(int year,int month,int day)
{
int number1,i;
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
number1=0;
if((year%4==0 && year%100!=0)||(year%400==0))
{
a[2]=29;
}

for(i=0;i<month;i++)
{
number1=number1+a[i];
}
return(number1);
}

现在这样就可以了。。

你的程序之所以报错,是因为下面这句存在语法错误:
a[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};

第一。a[n]是整型数组a中的第n个元素,你只能赋给它一个整型值,而不是一组。
第二。而你声明的整型数组a有13个元素,它们是a[0]--a[12]。引用a[13]会引内存越界。很危险。。很多时候会导致系统崩溃。

#include<stdio.h>
void main()
{
int f(int year,int month,int day);
int year,month,day,Number;
scanf("%d %d %d",&year,&month,&day);
Number=f(year,month,day);
printf("number is %d day\n",Number+day);
}
/*
int f(int year,int month,int day)
{
int number1,a[13],i;
//number1没有初始化,后面就用了,不行啊!!
number1=0;
if((year%4==0 && year%100!=0)||(year%400==0))
a[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
//a[]不能这样赋值
else
a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
//a[]不能这样赋值
for(i=0;i<month;i++)
{
number1=number1+a[i];
}
return(number1);
}
*/
//把f()改成以下的:
int f(int year,int month,int day)
{
int number1=0,a[13],i;
const int b[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
const int c[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if((year%4==0 && year%100!=0)||(year%400==0))
for(int i=0;i<13;i++)
a[i]=b[i];
else
for(int i=0;i<13;i++)
a[i]=c[i];
for(i=0;i<month;i++)
{
number1=number1+a[i];
}
return(number1);
}

真无奈,同样的问题,刚才有个人问过,我都已经答过,程序都改完了,竟然又有人问?
三个语法错
1.int f(int year,int month,int day); 函数申明不能在main函数中,应该在main函数前,或者没有
2.else
a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
这句需要加大括号
3.return(number1);
不需要括号返回的是数值,加括号返回的是地址。


一个初级入门的C语言问题
后面三组不是正确答案 因为chicks的数值总应该是被3整除的 把程序改成这样试试 include<stdio.h> void main(){int cocks,hens,chicks=0;while (chicks<=100){hens=0;while (hens<=33){cocks=100-chicks-hens;if(5.0*cocks+3.0*hens+chicks\/3.0==100.0)printf("%d %d %d\\n",cocks,...

初级c语言问题
include <stdio.h>double operate(double first, double second, char op){ if (op == '+')return first+second; else if(op == '-')return first-second; else if(op == '*')return first*second; else if(op == '\/')return first\/second;}int main(){ double f...

C语言初级问题
久违了C,对以上回答稍作解释,或许会错,希望有帮助 1.B \\,\\”,N,a,m,e,\\,\\A,d,d,r,e,s,s,\\n,2. pad=sum++,pad++,++pad;是逗号表达式吧,就是最后一个表达式的结果作为最终结果,而计算所从左到右,计算,++pad,就是pad加一并且本次将加一后的值作为结果,跟pad++相对,pad++...

C语言编程初级问题
先根据年数判断这年是否是闰年(能否被4整除),然后判断使用哪个数组:const int leap_year[12] = {31,27,31,30,31,30,31,31,30,31,30,31};\/\/闰年一月到十二月 每个月的天数 const int normal_year[12] = {31,28,31,30,31,30,31,31,30,31,30,31};\/\/普通年一月到十二月 每个月...

初级c 语言的一个问题,求解答
该加的空格加上 然后 将 else if (a = b = c)也就是倒数第三行 改为 else if (a==b==c)运行已经编译通过了!! 你自己试试吧。

问一个初级c语言的问题
取余:个位=数%10;十位=数\/10%10;百位=数\/100%10;明白了吧?就是把小数点移动到一位整数,就是它了!

初级C语言问题!! 请进。
同学,你好,我看到你的问题了,原因就出在你不明白的这个地方,m=max(a,max(a,b));本身的意思是:函数的嵌套。它的运算步骤是:设定 xx=max(a,b)则:m=max(a,max(a,b));首先运算 xx=max(a,b)然后再运算:m=max(a,xx),这道题错误的原因不是在你不理解这个地方,而是你得到...

C语言初级问题请教
即if(1+1==6\/3)为真,所以y自减1变为2,z自增1变为3。=== 希望你好好理解下 老谭的 c 语言读它个20遍、再上机.把它学好.我接到这个问题也有点迷糊了.幸好、以前上学的时候搞清楚过.然后回忆下也想起来了.

C语言初级问题
int max(int x, int y);int max(int x, int y){ int z;if(x>y) z=x;else z=y;return z;} 或者是不要第一行。函数定义时函数原型后面不能加分号,函数声明是函数原型后面要加分号。

C语言初级问题
printf("c1=%c,c2=%c\\n",c1,c2);这里是要输出ASCII为197和198对应的字符,由于ASCII码只有127个,197和198已经超过了这个范围,因此显示的是一个随机字符 printf("c1=%d,c2=%d\\n",c1,c2);这里是要输出c1和c2的值,由于c1和c2是字符型变量只有1个字节的存储空间,c1的值197对应的二进制为1...

化德县13047721371: C语言初学者的提问 -
伯牙吾台婷儿童: c语言自带函数可以在帮助中查找用法,因为用法有很多. 自定义函数的用法如下: 返回值类型 函数名 (函数参数) { 函数内容 } 比如你说的判断素数的函数该这样写 bool isprime(int x) { int i; for (i=2;i{ if (x mod i==0) return FALSE; } return TRUE; } 在主函数中调用该函数,如果返回TRUE就是素数,否则是合数.下面的网站上有c语言的一些教程,可以去看下.

化德县13047721371: C语言的一些初级问题.
伯牙吾台婷儿童: 加换行符代表按enter键结束输入;不加也可以; 那个表达式肯定是错误的,不能那么写; &这个是取地址符,就是把数存在那个内存里.

化德县13047721371: C语言初级问题 -
伯牙吾台婷儿童: 前面那个就是一个数据类型的问题 如果你写成x=5.0/2.0; 或者float i,j; i=5; j=2; x=i/j; 看看结果吧,其他的不用我说了 后面那个,其他的不说,先说你的scanf("%f%f%c",&x,&y,&o)吧,X,Y都是数字,中间没一个","或空格,或其他的分隔符,你怎么判断你的输入啊?我改成scanf("%f,%f,%c",&x,&y,&o)后在机子上跑了,完全没问题!

化德县13047721371: c语言初级问题 -
伯牙吾台婷儿童: #include void main() { int n[3][3]={0}; int k=0,i,j,num; while(k%2==0) { scanf("%d", } i=0;j=k/2; n[i][j]=1; for(num=2;num<=k*k;num++) { if((((i-1)<...

化德县13047721371: c语言初等问题 -
伯牙吾台婷儿童: x=x-2------ x= (x-2) x-2为0,不执行y=y+1x-=2-x-= (2) 2不为0,执行y+=1x=x-2;和x-=2;等价,也就是说两条语句等价,但两个表达式不是哪都能互...

化德县13047721371: C语言初学者问题
伯牙吾台婷儿童: 你是不是用VC++做的,改成 #include <stdio.h> int main(){ printf("你好,世界!\n"); return 0;} 如果是VC有问题,按你的情况 “CL.exe”是VC使用真正的编译器(编译程序),其路径在“VC根目录\VC98\Bin”下面, 你可以到相应的路径...

化德县13047721371: 关于C语言初学者的疑惑 -
伯牙吾台婷儿童: 再C中规定 输入函数标准格式为scanf(格式符,变量地址) 其中的格式符只能输入规定的格式符号如:%f、%d.... 如果其中掺杂了其他字符 我们在输入的时候就要按照格式符后面出现的字符原样输入后才能给变量地址正确的赋值. 对于第二个问题来说: 你再两个%d加了个逗号后 正确的输入格式为常量1 逗号“,”常量2 才能得到正确结果 而你输入的是:常量1 空格 常量2 虽然貌似如入正确 但是你输入的常量所付给变量a的值为12 而变量b所得到的是个不确定的值 所以产生了接下来的结果啦

化德县13047721371: 几个比较初级的c语言问题!!急求!! 1.猴子第一天摘下若干个桃子,当 -
伯牙吾台婷儿童: #include"stdio.h"intmain(){ charstr[20]={0}; inti,pos,len=0; printf("请输入一个字符串:"); gets(str); printf("请输入删除位置:"); scanf("%d",&pos); for(i=0;str[i]!='\0';i++) len++; if(pos+1>len) { printf("删除位置超过字符串长度\n"); return1; } for(i=pos;i

化德县13047721371: 初学者的C语言问题
伯牙吾台婷儿童: 重载pow的问题,vs的重载不会强制转换,里面的参数要按照类型写,例如在vc中pow(2,2)是可以的,但是vs中pow(2,2)就不可以,因为没有pow(int,int)的声明,如果是pow(2.0,2)就可以,因为pow的6个声明中有pow(float,int),这样重载就没有问题了~~~

化德县13047721371: C语言的一些初级小问题
伯牙吾台婷儿童: 一开始 a=12;之后 a+=a-=a*=a;是这样计算的,赋值运算时右运算,从右计算之后再向左便赋值 先算: a*=a,即a=a*a ,故a=144 再算,a-=a 即 a=a-a,故a= 0 最后算,a+=a;即 a=a+a;故 a=0; 我们可以再VC 6.0中编译,运行看看分析得对不对,一下代码可以验证; #include<iostream.h> void main() {int a=12; a+=a-=a*=a; cout<<"a="<<a<<endl; } 运行之后是:

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网