求问这道C语言编程题错在哪儿了,一道c语言编程题求大神解答,找一下我错在哪了,谢谢了?

2021-02-02 06:50:03 字数 2938 阅读 5013

1楼:匿名用户

line 13

s+=a[k][i];

2楼:

switch(choice) 多了一个分号

3楼:匿名用户

大概看了一下没测试,首先题目要求是以形参返回和值,而不是你用的返回值,所以函数需要改成类似

voidsumcolummin(inta[n],int&result)

二,求和写错了,应该是

s+=a[k][i];

然后最后的returns;则是result=s;

调用的时候则是

intr=0;

sumcolummin(x,r)

printf("%d",r);

这道题c语言编程题我有一个测试点总是通不过,请问我错在哪?

4楼:匿名用户

程序没问题啊,能正常输出:

你说的通不过,是编译器报的错吗?

附了一个**,是一次性输入之后,然后一次性依次每行输出:

#include

#include

int main()

for (i = 0; i < 2 * n; i = i + 2)}system("pause");

return 0;}

5楼:abc青龙偃月斩

#include

int main()

主要是要注意保留小数点一位这个测试点,"%0.1f"

一道c语言编程题求大神解答,找一下我错在哪了,谢谢了?

6楼:匿名用户

错误1:宏定义最后没有分号,将#define d 500;改为#define d 500

错误2:l不是整数,因此将l定义为int型就错了

错误3:既然规定输入格式为p=,那么输入时就不能直接输入数值,而应在数值之前输入p=,例如输入p=6000

另外,程序的不妥之处:

1、利润不一定是整数,因此将p定义为int型不妥

2、if-else语句不是这样用的。既然可以确定全部范围,那么这样写:

if(p<1000) number=1;

else if(p<2000) number=2;

else if(p<5000) number=3;

else if(p<10000) number=4;

对应的switch语句这样写:

switch(number)

没有语法错误,只能说明在格式上没有找到错误,还不一定是正确的,更不要说能够正确执行了。没有语法错误,有三种可能:1、格式没问题,但算法错误;2、格式没问题,但不符合要求,导致计算结果错误;3、格式没问题,且算法没问题,能够计算出正确结果。

只有符合第3种情况,才是正确的程序。

c语言一道编程题,求大神给看哪错了

7楼:易水飞霜

一定是错误:你在排序之后,并没有把数组还原,导致第一组数据正确后,第二组数据面临的不是原来的数组。样例中,当第一组数据排序结束后,数组由“12345”变为了“54321”,等你第二组数据要计算的时候,原本你应该计算“23”,结果你计算了“43”,自然有问题。

不确定是否错误,但是acm的题目中出现多组数据的时候,通常都是输入一组数据,输出一组数据。如果把所有的输入都存起来,等输入完毕后一起输出,会导致格式出错。

也不确定是否错误,你在用冒泡排序对数组进行操作。在acm题目中,通常情况下冒泡排序都是超时的排序方式。以这道题目而言,排序是可以优化的,比如,我只排前k个数据,找出第k大的数之后直接输出。

又或者用其他的优化排序法(同样考虑只排序到第k个)

一道c语言编程题,麻烦帮忙看一下我编的程序错在哪儿?

8楼:匿名用户

a没有初始化

del_char里边,a没有初始化,就去判断a!='\0',导致内存泄露

#include"stdio.h"

intdel_char(char*old,char*n) }return0;

}intlink_string(char*n,char*link_new)

} for(i=j;j-b>=0;i++)link_new[2*j]='\0';

return0;

}intmain()

9楼:听不清啊

#include"stdio.h"

int del_char(char *old,char *n)}n[j]='\0';

return 0;

}int link_string(char *n,char *link_new)

}for(i=j;j-b>=0;i++)

link_new[2*j]='\0';

return 0;

}int main()

一道c语言编程题,求解答

10楼:冯小气气

*s没有初始化,没有指向一块内存。

while(*str != ' ')当遇到空格的时候就直接退出while循环了,并不会去掉空格。

并且即使你进了while循环,你最后赋值的时候指针s已经到了最后了,也不会正确。

voidfun(char*str)

str++;

}memset(tmps,0,strlen(tmps));

memcpy(tmps,s,strlen(s));

free(s);}

11楼:一缕青尘

你这样能删那就见鬼了。你只是把指针一直移来移去,根本没有修改内存,怎么能达到目的?你用纸画一下,把内存用格子表示,指针用指向格子的箭头表示,你自己一步步跟着分析一下,自己就知道了。

一道c语言编程题,求解答,一道C语言程序题目,求解答~~

1楼 冯小气气 s没有初始化,没有指向一块内存。 while str 当遇到空格的时候就直接退出while循环了,并不会去掉空格。 并且即使你进了while循环,你最后赋值的时候指针s已经到了最后了,也不会正确。 void fun char str str memset tmps 0 strlen ...

C语言编程,多项式求和问题,不知道错在哪了,求指教

1楼 匿名用户 把k从int k改到下一行,double k吧。 k和i都是int的话,k i会取成int型,而不是double c语言 多项式求和,我写的错哪儿了?求详细解答 2楼 今朝少年 试一下这个 内容 include stdio h int main void printf sum d s...

一道C语言编程题,求大佬棒棒忙,一道C语言编程题,求解大佬 10

1楼 听不清啊 补充部分的 float av 0 int i for i 0 i 5 i av a i return av 5 2楼 匿名互联网用户 被调函数的函数体如下 float b 0 for int i 0 i 5 i b b a i return b 5 0 一道c语言编程题,求解大佬 1...