C语言程序高手进!大家看看这个斐波拉契数列的程序哪里不对啊运行起来很奇怪!

C语言程序高手进!大家看看这个斐波拉契数列的程序哪里不对啊运行起来很奇怪!,第1张

不知道要啥怪的我没看出错来但是,输出的时候有个小错,但我不知道这个你有没有考虑到就是:

scanf("%d", &j);你这里问用户要看第几个数

printf("%d", a[j]);但这里输出的是第j+1个数

改成printf("%d", a[j-1]);

我想起来了,4字节(int)的第26个数就溢出了所以要用long long再大就用无符号的

如:

这个是第26个数: FFFFFFFFFF

这个是int能存的: FFFFFFFF

如果这样要赋值,那前面的两个F就会丢失

后面是乱码,你没有初始化字符数组

char a[5] = {};

scanf遇到空格回车都会停止 *** 作,所以当你输入q空格时就只输进了q,空格后面的数据暂时还在输入缓冲区里等待读入

所以只有a[0]是正确的数据,后面因为没有初始化,是分配时储存在里面的旧数据,也就是乱码

少加很多括号,我改了,改的地方加好

#include<iostream>

using namespace std;

int main(){

int s,weight,m;

double price;

cout<<"请输入路程和重量\n";

cin>>s>>weight;

m=s/250;

if(s==250) { price=10sweight; cout<<"价格是"<<price;}

if(s==500) {price=10sweight098; cout<<"价格是"<<price;}

if(s==1000) {price=10sweight095; cout<<"价格是"<<price;}

if(s==2000) {price=10sweight092; cout<<"价格是"<<price;}

if (s!=250&&s!=500&&s!=1000&&s!=250&&s!=2000){

switch(m)

{

case 0: price=10sweight; break;

case 1: price=10sweight098; break;

case 2: case 3: price=10sweight095; break;

case 4: case 5: case 6: case 7: price=10sweight092; break;

default: price=10sweight09;

}

}

cout<<"价格是"<<price;

return 0 ;

}

以上就是关于C语言程序高手进!大家看看这个斐波拉契数列的程序哪里不对啊运行起来很奇怪!全部的内容,包括:C语言程序高手进!大家看看这个斐波拉契数列的程序哪里不对啊运行起来很奇怪!、用scanf程序输入字符数组,在输入的数字之间输入空格对于c语言用%c输出会出现奇怪的数字、新手c++程序,显示没错误,但是总是显示很奇怪的数字,到底哪儿错了...等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9732570.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存