C语言 为什么我运行没有错误,但是提交到网上显示的是答案错误呢?
答案:4 悬赏:0
解决时间 2021-02-17 04:50
- 提问者网友:川水往事
- 2021-02-16 10:54
C语言 为什么我运行没有错误,但是提交到网上显示的是答案错误呢?
最佳答案
- 二级知识专家网友:野慌
- 2021-02-16 11:25
输出语句是 printf("%d ", i); 你写成了printf("%d\n",i); 多了一个换行
追问:可是这个并不影响啊
追答:电脑判断时,你的输出格式不一样,电脑就认为是错的.
追问:可是这个并不影响啊
追答:电脑判断时,你的输出格式不一样,电脑就认为是错的.
全部回答
- 1楼网友:轻熟杀无赦
- 2021-02-16 14:15
应用程序发生异常 未知的软件异常
1.病毒木马造成的,在当今互联网时代,病毒坐着为了获得更多的牟利,常用病毒绑架应用程序和系统文件,然后某些安全杀毒软件把被病毒木马感染的应用程序和系统文件当病毒杀了导致的。
2.应用程序组件丢失,应用程序完整的运行需要一些系统文件或者某些ll文件支持的,如果应用程序组件不完整也会导致的。
3.系统文件损坏或丢失,盗版系统或Ghost版本系统,很容易出现该问题。
4.操作系统自身的问题,操作系统本身也会有bug 。
5.硬件问题,例如内存条坏了或者存在质量问题,或者内存条的金手指的灰尘特别多。
1.病毒木马造成的,在当今互联网时代,病毒坐着为了获得更多的牟利,常用病毒绑架应用程序和系统文件,然后某些安全杀毒软件把被病毒木马感染的应用程序和系统文件当病毒杀了导致的。
2.应用程序组件丢失,应用程序完整的运行需要一些系统文件或者某些ll文件支持的,如果应用程序组件不完整也会导致的。
3.系统文件损坏或丢失,盗版系统或Ghost版本系统,很容易出现该问题。
4.操作系统自身的问题,操作系统本身也会有bug 。
5.硬件问题,例如内存条坏了或者存在质量问题,或者内存条的金手指的灰尘特别多。
- 2楼网友:有你哪都是故乡
- 2021-02-16 13:21
if(i==factorsum(i)||i==1)
printf("%d\n",i);这里是不是应该是空格?
追问:空格换行都可以、不影响的
printf("%d\n",i);这里是不是应该是空格?
追问:空格换行都可以、不影响的
- 3楼网友:独行浪子会拥风
- 2021-02-16 12:00
#include <stdio.h>
int main() {
int ri,repeat;
long i, m, n;
long factorsum(int number);
scanf("%d",&repeat);
for(ri = 1;ri <= repeat;ri++) {
scanf("%ld%ld", &m, &n);
for(i = m;i <= n;i++) {
if(i == factorsum(i) || i == 1)
printf("%ld ",i);
}
printf(" ");
}
return 0;
}
long factorsum(int number) {
long sum = 0;
int i;
for(i = 1; i < number; i++) {
if(number % i == 0)
sum = sum + i;
}
return sum;
}
追问:为什么要这样?我那样的运行也是对的啊?我错哪里了?sum为什么变long型
追答:主要就是数据类型问题。比如if(i == factorsum(i) || i == 1) ,函数返回的是long,这里选择long类型与int类型比较,而在函数factorsum()内部,int赋给long,且将int当作long返回,这显得很乱。其实一个int类型的值,其因子之和用int足以表示出来,考虑到函数原型的要求,所以子函数内的sum声明为long类型。
int main() {
int ri,repeat;
long i, m, n;
long factorsum(int number);
scanf("%d",&repeat);
for(ri = 1;ri <= repeat;ri++) {
scanf("%ld%ld", &m, &n);
for(i = m;i <= n;i++) {
if(i == factorsum(i) || i == 1)
printf("%ld ",i);
}
printf(" ");
}
return 0;
}
long factorsum(int number) {
long sum = 0;
int i;
for(i = 1; i < number; i++) {
if(number % i == 0)
sum = sum + i;
}
return sum;
}
追问:为什么要这样?我那样的运行也是对的啊?我错哪里了?sum为什么变long型
追答:主要就是数据类型问题。比如if(i == factorsum(i) || i == 1) ,函数返回的是long,这里选择long类型与int类型比较,而在函数factorsum()内部,int赋给long,且将int当作long返回,这显得很乱。其实一个int类型的值,其因子之和用int足以表示出来,考虑到函数原型的要求,所以子函数内的sum声明为long类型。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯