C语言 初学者 请各位高手帮我看看这段有什么错误.
#define PI=3.141592654
这里不用等号,空格就可以了,即
#define PI 3.141592654
这个程序错误太多,我都不想改 了。
1、结构体定义分号结束
2、char a = *head.value; 应该是char a = head->value; 类似这样的都要改
3、temp = &(temp.ptr); 是什么意思?没有明白
4、*head.ptr = newv; 什么意思,乱七八糟的
5、...错误不胜枚举
6、该程序无药可救
以下是按照你的程序作出的测试(由于 等级原因无法给图)
测试1:
输入 1 2 3
max=1
测试2:
输入 1,2,3
max=3
你的最大值函数有问题,
int max(int x,int y,int z)
{
int k;
if(x>y)k=x;
else k=y;
if(k>z)k=x;
else k=z;
return(k);
}
应该改为
int max(int x,int y,int z)
{
int k;
if(x>y)k=x;
else k=y;
if(k>z)k=k;
else k=z;
return(k);
}
应该这样改
#include <stdio.h>
int main()
{
int a,b,c,d;
scanf("%d,%d,%d",&a,&b,&c);
d=a>b?a:b;
d=d>c?d:c;
printf("max=%d\n",d);
}
很显然max函数有问题。。
首先第二个if-else语句有问题,应改为:if(k < z) k = z ;
然后还有个问题就是你返回的参数是一个局部变量!这个变量在推出函数的时候就被销毁了,然后你再使用它会出现意想不到的结果。
由于你在main函数中定义了一个变量d,建议写成:
int max(int x,int y,int z)
{
d = x > y ? x : y;
if(d < z) d = z;
return d ;
}
自定义函数那里 int max(int x,int y,int z)
{
int k;
if(x>y)k=x;
else k=y;
if(k>z)k=k;
else k=z;
return(k);
}
最后的那个IF语句应该用if(k>z)k=k 才能表达 K大于Z时 K就是等于K本身呀 因为要输出的就是最大值嘛
#include <stdio.h>
int main()
{
int max(int x,int y,int z);
int a,b,c,d;
scanf("%d,%d,%d",&a,&b,&c);
d=max(a,b,c);
printf("max=%d\n",d);
return 0;
}
int max(int x,int y,int z)
{
int k;
if(x>y)k=x;
else k=y;
if(k<z) k=z;
return(k);
} 如果你输入什么的都正常的,那这个就没问题的
C语言 初学者 请各位高手帮我看看这段有什么错误.
程序是没有问题的 问题估计是出在你输入的时候按空格的原因 以下是按照你的程序作出的测试(由于 等级原因无法给图)测试1:输入 1 2 3 max=1 测试2:输入 1,2,3 max=3
...编译链接都没有问题,一运行出错,各位高手看看能否帮下忙?是输入的...
pt_arr内的指针指向的是字符串常量,字符串常量存储在只读内存区域,你使用gets输入当然有问题。你需要为数组中每个指针分配内存,而不是简单的赋值。比如pt_arr[0] = new char[70];这样就不会有问题了。
一道c语言问题,请各位高手们帮帮忙,谢谢
strlen(p[0])+strlen(p[1])+ strlen(p[2])即计算p中的三个字符串的长度总和,为3+3+3=9。
C语言 麻烦各位大侠帮我解释个程序
宏定义中的SQR(X) X*X有如下作用:在接下来的程序中,SQR(某表达式)被直接变为:某表达式*某表达式(注意没有括号)所以 SQR(k+m)就相当于 k+m*k+m a\/=SQR(k+m)\/SQR(k+m)就相当于 a=a\/k+m*k+m\/k+m*k+m 应该懂了吧~?
C语言高手来一下帮我编个小程序
首先,我可以用字符串来做。我现在先把代码贴上:include <stdio.h> int main(){ char *str , *ch , *c[] = {"个位为:" , "十位为:" , "百位为:" , "千位为:" , "万位为:"};scanf("%s",str);int i = 0 ;\/\/要求1.求出它是几位数 printf("此数为%d位数\\n",(size...
请各位C语言高手帮忙解决下面的问题。
printf("请输入15个数:\\n");for(i=0; i<15; i++){ scanf("%d", a+i);} printf("\\n请输入要查找的数:\\n");scanf("%d", &target);ret = binary_find(a, target, 0, 14);if(-1 != ret){ printf("\\n%d找到了, 它是a[%d]\\n", target, ret);} else { printf("\\...
请C语言高手帮我编写几个小程序~(一定要用C++编写噢~)
第一个 void reverse_merge(List &A,List &B,List &C){ InitList(C);i=j=1; k=0;la_len=ListLength(A);lb_len=ListLength(B);while((i<=la_len)&&(j<=lb_len)){ GetElem(A,i,ai);GetElem(B,i,bi);if(ai<=bj){ ListInsert(C,++k,ai); ++i;} else ListInsert(C,...
如何能学好英语,我是初学者,对英语一窍不通,但我很想学,请各位帮...
急躁冒进,三天打渔两天晒网都是不行的。在这里我就毛遂自荐一下我的学习方法吧: 首先先你要端正,不要急躁,,你做你自己的事,这样才能下心来学习。要成为英语高手就必须比别人走更多的路,做更多的事。你应该一个事实,英语是单词和语法的综合,所以单词和语法要拿下。 其次,对于单词,有如下几种方法,第...
向高手请教C++语言中的名词问题。
2.那个是输入\/输出流的问题,都是流stream,输入流:istream;输出流:ostream。而到文件里,就是文件流,fstream,所以前面就加了一个f,其实你先使者用,有时候你用多了,就懂了。比如,到C++里,里面的输入输出就变成了:cout,cin,有时候不要纠结。3.scanf的用法:scanf函数的一般形式scanf(格式...
C语言求高手帮助,总是WRONG ANSWER
"1 1");else { printf("1 1 ");while (i<=n){ f=f1+f2;f1=f2;f2=f;i++;printf("%I64u ", f);if (i==n) break;} } \/\/原因是 你前面的if是独立,后面的两个if else是独立的。如果n=1第一个if成立,第二个if不成立,但是第二个else是成立的,所以会。。。