首页 > 软件 > C++语言,哪里不对啊

C++语言,哪里不对啊

软件 2022-11-07

c语言 这个哪里不对啊 望指点,蟹蟹。

错误1,=15应该是==15 错误2,printf("%d"i);应该是printf("%d ",i);//%d后有个空格 错误3(逻辑错误,非语法错误),题目要求是和为15才输出,而你那个if后只跟了一个k++,而下面的printf不在这个if的范围,会导致每个数字都被输出 错误4(逻辑错误,非语法错误),同上面一样,你的输出换行在while之外,无法达到满10个换行,并且满10个换行应该对10取余,而不是==10 错误6(逻辑错误,非语法错误),百位是i/100,而不是i%100,比如234,i%100的结果是34 修正如下: #include int main() {

C语言哪里了出现错误?

你这个程序问题多多啊。

首先编译时报错:

a.c:16: warning: comparison between pointer and integer

这是一个警告,不理它也能运行程序,但对程序员来说,任何警告都不要忽略。仔细检查就会发现:

if((m>='A'&&m<='Z')||(m>='a'&&a<='z'))

这里面最后一个比较,你发现了什么?

另外你这个逻辑不对。一直在循环i,实际上getc(A)可能早就读到文件尾结束了。你需要判断一下是否文件结束。

更为关键的是:你每读一个字符,i就+1了,所以你的每一个数组,都是只保存了一个字符。

另外就是你最后的输出,printf("%s",a);这样不行啊,只输出一个,应该用循环,输出每一个数组:

n=i;
for(i=0;iprintf("%s\n",a[i]);

虽然这样改了,你的程序还是不对。。。。

最后,你需要关闭文件。虽然这个不影响程序执行,但关闭打开的文件和释放分配的内存,是一个好习惯。

建议你循环时,使用getc(A)的结果是否是EOF来循环。然后在里面读到是字符,就j++,如果不是字符,则跳到下一个单词了,就先把该数组末尾补0(a[i][j]=0,再让i++,同时让j=0;

while((m=getc(A))!=EOF)
{
if(m.....)
else
}

这样的话应该能实现你的功能,但可能会有连续多个非单词,造成i++次数太多,而有空数组的情况。考虑一下如何避免这种情况?

具体程序就不写了,显然你在努力学习,所以根据这个思路自己去改程序吧。

c语言哪里不对啊

scanf语句里应该有空格:scanf("%d %d %d",&a,&b,&c); if语句里面还要加括号:if( (a+b>c) && (b+c>a) && (c+a>b)) …… 而且其内涵语句要用大括号,应该为: if( (a+b>c) && (b+c>a) && (c+a>b)) { l=a+b+c; printf("周长%d\n",l); } 【最终代码】 #include void main() { int a,b,c,l; printf("输入3边。。\n"); scanf("%d%d%d",&a,&b,&c); if(a+b>c&&b+c>a&&c+a>b)

这个c语言编程哪错了,怎么结果不对呢?

b c你定义的是int, 要用%d输入。 x是double 最好用%lf输入, 否则你输入的时候需要输入科学计数法形式。 最后的输出, 如果你确定结果是整型,那么一样用%d。 整体来说, 就是需要确认你需要的a b c s x五个变量都是什么类型, 然后再针对修改。

大一c语言编程哪里错了结果不对啊

第一,把scanf("%f",&x);改成scanf("%lf",&x); 因为x是double型,对应lf,f是float型 第二,把printf("y = %f",y);改成printf("y = %0.3f",y); 这个表示输出3位小数的结果,不然小数位数很多

标签:CC++ 编程 C(编程语言) 信息技术 编程语言

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved. 京ICP备11019930号-18