c语言在哪里运行,大神帮忙看看哪里错了

问题补充&&
谁说错了?我运行了一遍,正确的
•回答
•回答
•回答
•回答
•回答
{ c=c*i ;表示程序执行结束;i&lt:7
for(i=1。主函数中是可以有return语句的。应给是你好;=g。否则程序会仅算完一次后直接返回c的值,return 0:第8行有错误;}你漏掉了花括号
代码本身没有错,只要注意下输入k的值,不要太大导致溢出。
没错啊,for循环里只有一行时,可以不加{}
数如果太大了,就超范围了,用u
anything9619&
没有错!很不错!main的类型要是写void 更漂亮!
JackieWuZi&
猜你感兴趣
服务声明: 信息来源于互联网,不保证内容的可靠性、真实性及准确性,仅供参考,版权归原作者所有!Copyright &
Powered byC语言初学者,输入一个小写字母输出对应的大写字母和ASEII码。 求大神帮我看看哪里错了吧_百度知道
提问者采纳
printf(&........&);
ch = getchar();
if(96&=ch&&ch&=123) //此处应该写成这样 ,96&ch&123 错误的
//scanf(&%x&,ch);
//此处语法错误 ,少了一个 ‘&’ 号ch = ch - 32;
printf(&%c,%d&,ch,ch);
printf(&!!!!!!!!!!!!!&珐福粹凰诔好达瞳惮困);
提问者评价
谢谢,按照你做的,成功了!
其他类似问题
按默认排序
其他2条回答
这一段改成这个就OK了 printf(&Input a word:&); scanf(&%c&,&ch); if(96 & ch & 123) {
ch = ch -32;
printf(&%c,%d\n&,ch,ch); }你用了getchar,就可以,或者用scanf就可以读到输入的数据了。你这样写,每珐福粹凰诔好达瞳惮困次程序都会等待你输入。实际上你只需要输入一次。
为什么用了getchar 又用了scanf两者取其一就行啊
大写字母的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C语言二维数组菜鸟问题,请大神帮忙看看哪里错了_百度知道
C语言二维数组菜鸟问题,请大神帮忙看看哪里错了
3;););for(i = 0;for(j = 0;%f\5门float score[S1][S2],不知哪里错了; S2, &score[i][j]); i &}float stu_aver()
/n& S2, j ++){s = s + score[i][j];input();;float c[3],i + 1);t&void input(){for(i = 0打错了:\ 3;for(k = 0, b),应该是这个#include&return 0;3人#define S2 3/;for(i = 0;n&, a, j & j & j ++){scanf(&/}printf(& k++){printf(& i ++){for(j = 0;highest(h;}}}float highest( i & S1; score[i][j]){h = score[i][j]; S1;}}}printf(&}}}int main(){ j &lt, int b){h = score[0][0]; i ++){printf(&b = j + 1; i &%f %d %d\n&; 3; 3;c[i] = s &#47, b );k &lt,stu_aver();#define S1 3/\float c[3], j ++){if(h &&#92.h&/ i ++){for(j = 0,}问题在于求平均的那个函数;%f&a = i + 1;/n&printf(&quot,c[k]);please input student %一个学生平均分{float s = 0
提问者采纳
//这里可以放在第二层for外面;s&h;return&=0;i&stu_aver(c),也没有返回值如highest函数;&k&%f&highest();score[i][j];&);0,没有返回值,b;&=&&}}}printf(&quot,但放这里也没事}}}int&//一个学生平均分;),函数参数传递的也没有意义;j&%d&//s每次循环过后都要重新初始化,不然会和前面的叠加for(j&0,给h赋初值是也是不恰当的stu-aver函数类型定义错误和没有传递参数保存数据(如果不传递就要用指针来做了);&s&stu_aver(float&=&0;score[i][j];a;\n&quot,s赋初值的位置也是不恰当的部分函数修改如下;i&&S1;input(),会出现后面a;//应赋初值为零;h&=&a;&i&=&&}printf(&//传递定义的数组是必须的for(k&main(){float&nbsp,不懂再问void&+&nbsp,c[k]);=&j&0;highest()//这里的参数传递的没有意义;+&3,你下面调用函数也没传递参数{float&&&score[i][j]){h&nbsp,&;=&int&k;c[i]&&=&S2;&printf(&quot、b错误for(i&=0;\n&=&nbsp,不然不好比较;a&%d\n&j&%f\t&++){s&;&&lt,所以上面的函数也不用参数float&&1,减少运算量;i&k++){printf(&}void&++){for(j&//你这里没有进行参数传递;0;++){float&&j&3,&b&1;+&++){if(h&&&3;);&j&=&b&nbsp,&c[3];int&&&nbsp,函数传递的参数不对;c[3])&nbsp,这里需要传递数组参数保存数据{for(i&h;&3;s&i&/&=&0你这个错的太多了;h
改好了!谢谢!请问如果stu_aver函数要用指针怎么用呢?
float&*stu_aver()&&//一个学生平均分(首先要包含stdlib.h头文件)(因为返回指针型,所以函数为指针函数){float&*p=(float&*)malloc(3*sizeof(float));//(定义三个大小单位的指针p,malloc函数在上面的头文件里)for(i&=&0;&i&&&3;&i&++){float&s&=0;for(j&=&0;&j&&&3;&j&++){s&=&s&+&score[i][j];*(p+i)=&s&/&3;//这里用指针保存数值}}return&p;//返回指针首地址}int&main(){float&h;int&k;input();printf(&\n&);highest();float&*p=(float&*)malloc(3*sizeof(float));p=stu_aver();//用定义的指针来接受函数返回的指针首地址for(k&=&0;k&&&3;&k++){printf(&%f\t&,*(p+k));}printf(&\n&);return&0;}&这里都是用指针了,没有用数组作运算,而且不传递参数时一般都这么用运行成功还望采纳
提问者评价
其他类似问题
按默认排序
其他3条回答
score[0][0]//已帮你修改好了;=&=&j&&&0;j&,&int& } printf(&++)
scanf(&j&/&i&++)
s&&&lt,&&main(){ float&&nbsp,& return&%d&&%f\t&b;S2&=&j&0;++) {
printf(& return&&c[])&3;=&i&&=&&&=&stu_aver(float&nbsp.h&void&int&a;3//5门float&0; //返回你求的的值}void&#define&j&=&score[i][j])
h&nbsp,&=&i&%d\n& for(i&b){
h&&score[i][j];1);&S1&nbsp,&&&;%d&a; int&0;3; input();++) {
s&&\n&s&//内循环结束后存入数组 }}int&j&s&S1;k++) {
b&3//3人#define&&=&S1;=& for(i&0;score[S1][S2],错误的地方也给你加注释说明了#include&&nbsp,&&
} } printf(&&
c[i]&i&1;=&&0; //传递数组进去;++) {
for(j&a;+&+&j&nbsp,c[k]);j,& //在内循环外初始化为0
for(j&&&0;
a&i&+&b);c[3]; highest(h;S2;input(){
} }}float&3;b&nbsp,&k&;//一个学生平均分{ float&);score[i][j]);&%f&=& printf(&i&=&
for(j&a;&k,&+&h,&0;0;score,得到平均分 for(k&&&&0;++)
if(h&&lt,&input&&&=&highest(float&1;h;S2;);s&h;i&);please&nbsp,i&student&&&nbsp:\n&score[i][j];\n&=&%f&int& stu_aver(c);3;
谢谢!请问如果stu_aver函数要用指针的话怎么改?
#include&stdio.h&#include&stdlib.h&//引入这个头文件#define S1 3//3人#define S2 3//5门 float score[S1][S2];int i,//中间代码省略,太长了。void stu_aver(float *c)
//一个学生平均分,此处修改为指针{
float s = 0;
for(i = 0; i & 3; i ++)
//在内循环外初始化为0
for(j = 0; j & 3; j ++)
s = s + score[i][j];
c[i] = s / 3;
//内循环结束后存入数组
}} int main(){
printf(&\n&);
highest(h, a, b);
float *c = (float*)malloc(sizeof(float)*3); //声明为指针,并申请3个内存空间//当前保存3个学生平均成绩,如果是n个就申请n个
stu_aver(c);
//传递数组进去,得到平均分
for(k = 0;k & 3; k++)
printf(&%f\t&,c[k]);
printf(&\n&);
return 0;}
OK了~然后我还有一点疑问啊:“void stu_aver(float *c)
//一个学生平均分,此处修改为指针”这里形参是数组内容,而main函数里面的调用“stu_aver(c);
//传递数组进去,得到平均分”这里为啥传的是数组首地址?最后输出数组又不加*号了
数组名实质上就是这个数组的第一个元素的首地址,其中 c[0] 实际上可以写为: *(c+0)c[1] 可以写为 *(c+1)
float stu_aver()
//一个学生平均分{float s = 0;float c[3];for(i = 0; i & 3; i ++){for(j = 0; j & 3; j ++)
//一个学生不是有5门课么?{s = s + score[i][j];c[i] = s / 3;
//应该写到外面}
//少了返回值,你是把所有学生的成绩都求了一遍,}
//那就用一个数组来实现多个返回值}正确的应该是:void stu_aver(float c[])
//一个学生平均分{
float s = 0;
for(i = 0; i & S1; i ++)
for(j = 0; j & S2; j ++)
s = s + score[i][j];
c[i] = s / S2;
循环写的不对。。两个你都写成j了。。应该是一个i和一个j
二维数组的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁c语言题,输入HeLLo,输出结果为hEllO,下面是我写的程序,编译没错,但就是运行出错,帮忙看看,改哪?_百度知道
提问者采纳
gets(str),不是gets(str[i])
我改了之后,输入HoLL,还是运行错误
还有就是for循环中因为数组的长度不是10,所以导致访问越界,应该是for(i = 0; i & strlen(str); i++)
提问者评价
其他类似问题
get(str)不是get(str[i])strlwr的用法不对,你是每次都把整个字符串输出了你的循环变量从0到10,但是你的字符串长度有10个吗assii码不对,'a'是97不是90,你不记得就不要写assii码,直接写str[i]&'a'&&str[i]&'z'改正后代码如下,请采纳&#include&stdio.h&#include&string.h&void&main(){&char&str[10];&int&i;&gets(str);&for(i=0;i&strlen(str);i++)&{&&nb哗海糕剿蕹济革汐宫搂if(str[i]&=65&&str[i]&=90)&&&printf(&%c&,str[i]+32);&&else&if(str[i]&=97&&str[i]&=122)&&&printf(&%c&,str[i]-32);&}&printf(&\n&);}
按默认排序
其他2条回答
#include&stdio.h&void main(){char str[100];gets(str);for(i=0;str[i];i++){if(str[i]&=65&&str[i]&=90)str[i]+=32;else if(str[i]&=90&&str[i]&=122)str[i]-=32;}puts(str);}
gets(str[i]);改为gets(str)
c语言的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 c语言入门 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信