问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

程序不报错但是就是运行不了这是为什么啊

发布网友 发布时间:2023-07-30 02:14

我来回答

2个回答

热心网友 时间:2023-08-10 06:36

你好!你这里犯了一个严重的错误。
1.在你调用这个intToString函数的时候,你的第二个参数是作为结果参数来使用的,是用来存储得到的字符串,那么他一定要有自己的空间。
2.但是这个程序的主函数在调用时,没有为其开辟空间,只是传过去一个指针;这个指针还没初始化,是一个野指针。这样做很危险,并且会导致段错误。
3.你可以将主程序里的char *str 改成char str[n]; n代表你输入的最大字符长度+1;这里就是7,或者是用malloc来分配空间。char *str=(char *)malloc(7);malloc使用完毕之后要记得free。
希望能帮到你。

热心网友 时间:2023-08-10 06:37

按你的思路,帮你改对了真不是件容易的事,自己好好研究一下吧。

#include<iostream>
#include<cstring>
using namespace std;
void intToString( long num, char str[], int n)
{
int i = 0;
int m = 0;
char ch;
//得到逆序的数组
while(num !=0 )
{
str[i++] ='0'+num%10 ;
num /= 10;
}
//反转数组
for( m=0;m<i/2;m++ )
{
ch=str[m] ;
str[m]=str[i-m-1];
str[i-m-1]=ch;
}
str[i] = '\0';
cout << str<<endl ; //注意分号不能是全角或中文的
}
int main(){
char str[7]; //因为最大数为100000,输出总长不超过6,故定义长度7
long num=1234;
int len;
do {
cin >> num ;
} while( num <0 || num >=100000 );
intToString( num,str, 7); //不清楚第三个参数有何用
len=strlen(str); //取数的长度

for(int i=0;str[i]!='\0';i++) //for语句写的不对,判断结束也不要写死成5
{
switch( str[i]-'0' )
{
case 1:cout<<"一";break; //注意冒号不能是全角或中文的
case 2:cout<<"二";break;
case 3:cout<<"三";break;
case 4:cout<<"四";break;
case 5:cout<<"五";break; //注意冒号不能是全角或中文的
case 6:cout<<"六";break;
case 7:cout<<"七";break; //注意冒号不能是全角或中文的
case 8:cout<<"八";break;
case 9:cout<<"九";break; //注意冒号不能是全角或中文的
case 0:
if ( str[i+1]!='\0' && str[i+1]!='0' )
cout<<"零";break;
}

if ( str[i]!='0' )
switch(len){
case 5:
cout<<"万";break;
case 4:
cout<<"千";break;
case 3:
cout<<"百";break;
case 2:
cout<<"十";break;
case 1:
cout<<" ";break;
}
len--;
}
return 0;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
大学入学应该带哪些必备物品? tim删除聊天记录的方法步骤 pc端彻底删除tim聊天记录 甩脂机调到什么档位 如何用甩脂机 甩脂机的正确使用方法 使用抖脂机要注意什么 怎样申请小号微信号 ...的长和宽分别增加6米,扩建后草坪的面积增加了多少 ...扩建后长和宽分别增加10米,扩建后的操场面积增加了多少平方米?_百 ... 长方形的公园它的面积长和宽分别扩大十米后它的平方增加了面积增加了13... 沈阳加工中心850e换完刀程序不不往下走老是1075报警怎么弄 桌面出现异常 所有程序都不不开 瓦楞外箱的堆积层数是怎么计算的 培训班将学生的可转让给第三人家长是否可以要求第三人继续履行合_百度... 乙二醇丁醚燃烧效果 乙二醇单丁醚热值多少大卡 牛年宝宝起名偏旁口 名字精选大全 桂林市艺术馆到建杆路坐几路车 梦见家人掉坑获救 国家队是A社的吗 宝马.奥迪.路虎.克莱斯勒.宾利是那个国家 克莱斯勒公司是哪个国家的/ 克莱斯勒汽车是哪个汽车公司产的? 7723游戏盒子实名认证过后会收到短信吗? 毕业证书跟结业证书的编号是否一致 急求怎么创建一个和谐班级,要求写一篇文章 巨量本地推可以同时投放不同地点吗 抖音本地推一块钱的和几百的什么区别 传奇世界中技能项链有什么用 欧文申请交易时间是几点 三星i9300无故故障,开不了机 电工证挂失了别人能用吗 钝叶姜栽培方法注意事项 钝叶姜姜的别称 2012年是不是闰年 三亚站附近有什么好吃的 《极品飞车17》 新手开什么车解决 蟹么么 对于压力式比例混合装置、平衡式比例混合装置、机械泵入式比例混合装置... 美人心计 刘赢的儿子叫什么 压力式泡沫比例混合装置需要远程控制吗 压力式泡沫比例混合装置有哪些优点 如题 平衡式泡沫比例混合装置中的平衡阀是否需要备用 囊式压力比例混合装置安装在报警阀组前还是后 下列符合泡沫比例混合装置安装要求的是()。 枫木木皮用什么化学材料漂白可以把树心漂好? 华为ccnp考到工资一般多少 ...体育馆运动木地板是最好的,谁能告诉我枫木有什么特性那? 游戏王魔偶甜点卡——埃莉蒂娅,七音服优雅装、音阶、调和、音乐 电脑屏幕如何接机顶盒 京选数据线小米快充吗