c语言 迷宫求解程序,如何将一个个输入的数字变成一串数字一起输出来,求解~

C语言 函数部分: 输入一个4位数,要求输出这4个数字字符,但每两个数字之间空一个空格,谢_百度知道
C语言 函数部分: 输入一个4位数,要求输出这4个数字字符,但每两个数字之间空一个空格,谢
我的问题:1.void insert(char str[])与void insert(char []);有什么区别,2.for(i=strlen(str);;)是什么意思,还有为什么不能是i&=3;i++;3.str[2*i-1]=' ',为什么是2*i-1,不是+1
初学函数,请多多指教编写一个函数,输入一个4位数,要求输出这4个数字字符,但每两个数字之间空一个空格。如输入2008,则输出“2 0 0 8”#include&stdio.h&#include&stdlib.h& int main(){
char str[80];
void insert(char []);
printf(&input four digits:\n&);
scanf(&%s&,str);
printf(&\n&);
printf(&Output is:\n&);
insert(str);
system(&PAUSE&);
return(0); }
void insert(char str[]){
for(i=strlen(str);i&0;i--)
{str[2*i]=str[i];
str[2*i-1]=' ';}
printf(&%s\n&,str);}
提问者采纳
我来回答楼主的问题:1、如果是函数声明的话.void insert(char str[])与void insert(char []);没有区别,因为函数声明仅仅是一个声明,它反应出的是该子函数的返回类型、函数名已经参数类型,所以不需要添上参数名2、for(i=strlen(str);i&0;i--)这一句中strlen(str)是获取数组str的元素个数,所以这一句的效果就是按倒序方式遍历数组,其实用for(int i=0;i&=3;i++)也不是不可以,那for循环里面的语句就不能那样写了。3、至于第三个问题嘛,建议楼主在纸上用笔画出连续的8个方框,自己琢磨下,我告诉你for(i=strlen(str);i&0;i--){str[2*i]=str[i];str[2*i-1]=' ';}的基本原理,数组元素序号
现在位置 4
2那么剩下的1、3、7全部是空格,最后输出的结果就达到楼主要的答案了,希望能对楼主有帮助,有不懂的可以继续追问
提问者评价
世上好人就是多,,谢啦TvT
其他类似问题
void insert(char str[]) 这个是函数定义
void insert(char []);这个是函数声明2 i的初值是str的长度 strlen是函数 加头文件string.h 也可以写成你那样 但是下面的语句就得变3 这个和语言无关了 你自己把代码走一遍就清楚了
为您推荐:
其他2条回答
1.void insert(char str[])与void insert(char []);乍一看一样,呵呵
区别就是void insert(char [])这句话中的参数没有参数名,所以,这句话一般只用来在调用此函数的语句之前,对此函数进行声明,因为声明函数不需要指定参数名,而void insert(char str[])这句话,可以作为函数声明语句,也可以作为函数定义体,OK?2.for(i=strlen(str);;),strlen是求的字符数组长度,for循环将i初值赋值为此!i的范围应该在循环体内吧?
对了,还想问一下 char str[80];
void insert(char []);这两行有什么因果关系么
1、前者参数是字符数组,后者是一个字符2、另i=字符的总长度,如果用你说的那样,for ( i=0; i=strlen(str);
i++; )3、至于这个问题,你自己仔细推敲一下就行了,这是数学计算问题,思维方法问题,不好说啊。。。
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C语言:用%s格式符输入一个数字字符串,将其转换为整数并用%d输出,例如输入“1234”,输出1234_百度知道
C语言:用%s格式符输入一个数字字符串,将其转换为整数并用%d输出,例如输入“1234”,输出1234
提问者采纳
#include &stdio.h& #include &stdlib.h&main() { char str[6];scanf(&%s&,str);int n=atoi(str);printf(&%d&,n);return(0); }
其他类似问题
为您推荐:
字符串的相关知识
其他3条回答
用 atoi 函数吧
atoi()有函数的,把字符数组里的每个字符atoi然后输出就可以了
#include&stdio.h&#include&string.h&main(){
char str[20];
int a[20],i;
printf(&input string:&);
gets(str);
for(i=0;i&20;i++)
a[i]=(int)str[i];
printf(&%2d &,a[i]);
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C源码(C语言)输入一个不多于5位的正整数,输出它是几位数,分别输出每一位数字,并逆序输出61
上亿文档资料,等你来发现
C源码(C语言)输入一个不多于5位的正整数,输出它是几位数,分别输出每一位数字,并逆序输出61
/*输入一个不多于5位的正整数,要求:1求它是几;*/;#include&stdio.h&qu;main();inta,bit,b,b1,b2,b3,b4;;printf(&pleaseenter;scanf(&%ld&,&a;L:if(a&0&&a&l;{if(a&10);bit=1;;i
/*输入一个不多于5位的正整数,要求:1 求它是几位数;2 分别输出每一位数字;3 按逆*/#include &stdio.h&main(){int a,bit ,b,b1,b2,b3,b4;printf(&please enter a number:\n&);scanf(&%ld&,&a);L: if(a&0&&a&=99999){if(a&10)bit=1;if(a&9&&a&100)bit=2;if(a&99&&a&1000)bit=3;if(a&999&&a&10000)bit=4;if(a&=99999)bit=5;printf(&%ld is %d of bit number\n&,a,bit); }
elsegoto L;if(bit=5){b=(int)(a/10000 );b1=(int)(a/1000 )-b*10;b2=(int)(a/100)-b*100-b1*10;b3=(int)(a/10)-b*-b2*10;b4=a-b*10-b2*100-b3*10;}if(bit=4){b=(int)(a/1000 );b1=(int)(a/100 )-b*10;b2=(int)(a/10)-b*100-b1*10;b3=a-b*-b2*10;}if(bit=3){ b=(int)(a/100 );b1=(int)(a/10)-b*10;b2=a-b*100-b1*10;}if(bit=2){b=(int)(a/10);b1=a-b*10;}if(bit=1)b=1;printf(&%ld number is:\n%d,%d,%d,%d%,d%.\n&,a,b,b1,b2,b3,b4);printf(&%ld else number is:\n%d,%d,%d,%d%,d%.&,a,b4,b3,b2,b1,b);getchar();return 0;} 包含各类专业文献、幼儿教育、小学教育、文学作品欣赏、专业论文、高等教育、生活休闲娱乐、行业资料、中学教育、C源码(C语言)输入一个不多于5位的正整数,输出它是几位数,分别输出每一位数字,并逆序输出61等内容。
 C 语言程序设计(第 2 版)课后习题答案第一章 1....编写一个 C 程序,输入 a、b、c 三个值,输出...(1)求出它是几位数; (2)分别输出每一位数字; ...  C 语言课后习题答案-第四版第一章 5、请参照本章...有 3 个正整数 a,b,c,有键盘输入,输出其中最大...它是几位数; (2)分别输出每一位数字; (3)按逆...  第七次上机作业 写一个判素数的函数,在主函数输入一个整数,输出是否素数的信息...给出一个不多于5位的正整数,要求:求出它是几位数;分别输出每一位数字; 按...  } printf(&Score=%g Grade is %c\n&,score,grade); } 4.9 给一个不多于 5 位的正整数,要求:求出它是几位数;分别输出每一位数字;按逆序输出各位数字。 ...  例如输入格式为:123 444 输出:分别输出进行+、-、...整数位数判断 输入一个不多于 5 位的正整数,要求:...对每个整数的每一位数字统计 0~9 各个数字的出现...  1 ? 5 ? 3 。 3 3 3 12. 给一个不多于 6 位的正整数,要求:①求出它是几位数;②分别输出每一位数字;③按 逆序输出各位数字,例如原数为 158,应输出...  6. 从键盘任意输入一个不多于五位的正整数, ① 求它是几位数; ② 分别输出每一个数字; ③ 按逆序输出各位数字,例如原数为 135,应输出 531。 实验过程: ...  第 5 个元 素与第 10 个元素互换。分别输出数组...27. 从键盘输入一组数,先按原来顺序输出,再将其中...小写字母、数字字符、空格字符以及其它字符的个数。 ...  (&E\n&); } 2、 给一个不多于 5 位的正整数,要求: 1) 求出它是几位数; 2) 分别输出每一位数字; 3) 按逆序输出各位数字,例如原数为 321,应输出 ...C语言 从键盘输入一个十进制整型数据,计算并输出其各位上数字之和(忽略正负号)_百度知道
C语言 从键盘输入一个十进制整型数据,计算并输出其各位上数字之和(忽略正负号)
vc6调试通过#include&stdio.h&void main(){ int sum=0; printf(&输入一个数字:&); scanf(&%d&,&i); if(i&0)
i=-i; while(i&=10) {
sum+=i%10;
i/=10; } sum+=i; printf(&各位之和为%d\n&,sum);}
其他类似问题
为您推荐:
整型数据的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C语言求解 输入一个long型数字,用其中所有的奇数组成一个最小数 ,输出。
C语言求解 输入一个long型数字,用其中所有的奇数组成一个最小数 ,输出。 5
程序功能:输入一个long型数字,用其中所有的奇数组成一个最小数 ,输出。算法:在fun函数先取出所有的数字,存入数组,然后取奇数再存入数组,对数组排序。输出。
问题:vc++6.0没提示出错,结果不对。求高人指点。新手上路,请多关照。#include&stdio.h&void main(){&long fun(long s);&&&&&&&&&long number,a;&printf("now input the number:\n");&scanf("%ld",&number);&a=fun(number);&printf("the result is:%ld",a);}long fun(long s){&int& i=0,j=0,t; /*dingyi*/&int a[10],b[10];
&while(s!=0)&{&&a[i]=s%10;&&s=s/10;&&i++;&}&for(i=0;i&20;i++)&&if(a[i]%2==1)&&{&&&b[j]=a[i];&&&j++;&&}&&&for(i=0;i&20;i++)&&&for(j=0;j&20-i;j++)&&&&if(b[j]&b[j+1])&&&&{&&&&&t=b[j];&&&&&b[j]=b[j+1];&&&&&b[j+1]=t;&&&&}&&&&&s=b[0];&&&&&&& for(i=0;i&j;i++)
&&&&&s=s*10+b[i+1];&&&return(s);
我加了两个参数,分别记录你输入数据的长度和奇数数组的长度,在你排序或输出时要用这两个数据,不然输出就是错的。
#include&stdio.h&
long fun(long s);
int main(){ &long number,a;&printf("now input the number:\n");&scanf("%ld",&number);&a=fun(number);&printf("the result is:%ld",a);&getchar(); getchar();&return 0;}
long fun(long s){ int& i=0,j=0,t,length=0,alllength=0; /*dingyi*/&int a[20],b[20];
&while(s!=0)&{& a[i]=s%10;& s=s/10;& i++;& alllength++;& }&for(i=0;i&i++)& if(a[i]%2==1)& {&& b[j]=a[i];&& j++;&& length++;& }
&& for(i=0;i&i++)&& for(j=0;j&j++)&&& if(b[j]&b[j+1])&&& {&&&& t=b[j];&&&& b[j]=b[j+1];&&&& b[j+1]=t;&&& }
for(i=0;i&i++) printf("%d\n", b[i]);&&&& printf("length=%d\n",length);&&&& s=b[0];&&&& for(i=1;i&i++) &&&&&& s=s*10+b[i];&& return(s);}
谢谢你。这是我调试后的程序。加了两个记录数组长度的变量。
#include&stdio.h&void main(){&long fun(long s);&&&&&&&&&long number,a;&printf("now input the number:\n");&scanf("%ld",&number);&a=fun(number);&printf("the result is:%ld",a);}long fun(long s){&int& i=0,j=0,t,n; &int a[10],b[10];
&while(s!=0)&{&&a[i]=s%10;&&s=s/10;&&i++;&}&n=i-1;//记录a[]的长度&for(i=0;i&n;i++)&&if(a[i]%2==1)&&{&&&b[j]=a[i];&&&j++;&&}&n=j-1;//记录 b[]的长度&&for(i=0;i&n;i++)&&&for(j=0;j&n-i;j++)&&&&if(b[j]&b[j+1])&&&&{&&&&&t=b[j];&&&&&b[j]=b[j+1];&&&&&b[j+1]=t;&&&&}&&&&&&s=b[0];&&&&&&& for(i=0;i&n;i++)
&&&s=s*10+b[i+1];&&&return(s);
的感言:谢谢你。 相关知识
其他回答 (4)
贴个我自己写的吧,不用排序,很简单的操作#include&stdio.h&long fun(long s){&&&long i, r = 0;&&long a[10];&&for (i = 0; i & 10; i ++)&& &a[i] = 0;&&while (s !=0) //将s拆分成奇数序列,每个奇数在a[10]中记录个数&&{&& &i = s % 10; if (i % 2 == 1)
&a[i] ++; s /= 10;&&}&&for (i = 1; i & 10; i += 2)
&while (a[i] & 0)
& &r = r * 10 +
&}&&return (r);}void main(){&&long number,a;&printf("now input the number:\n");&scanf("%ld",&number);&a=fun(number);&printf("the result is:%ld",a);}
可以解释下面一小段吗?不胜感激。
while (s !=0) //将s拆分成奇数序列,每个奇数在a[10]中记录个数&&{&& &i = s % 10;if (i % 2 == 1)&a[i] ++;s /= 10;&&}
运行截图:
//C语言求解 输入一个long型数字,用其中所有的奇数组成一个最小数 ,输出。#include &stdio.h&#include &malloc.h&
int main(void){&&&&&& char n[20] = {NULL};&&& scanf("%d", &c);&&& int i = 0;&&& while (c){&&&&&&& if ((c % 10) % 2 == 1)&&&&&&&&&&& n[i++] = c % 10;&&&&&&& c /= 10;&&& }&&& for (int j = 0; j != i - 1; ++j)&&&&&&& for (int k = j + 1; k != ++k)&&&&&&&&&&& if (n[j] & n[k]){&&&&&&&&&&&&&&& int t = n[j];&&&&&&&&&&&&&&& n[j] = n[k];&&&&&&&&&&&&&&& n[k] =&&&&&&&&&&& }&&& for (int h = 0; h != ++h)&&& printf("%d", n[h]);&&& return 0;}
请问,我的出错在哪里呢?谢谢。
for(i=0;i&20;i++)&&&for(j=0;j&20-i;j++)这里错误
冒泡的j是从i+1开始
数组不一定会存满20
冒泡法。。本质上是大数沉底法吧。。我看了下书。。是&for(j=0;j&20-i;j++)。谭浩强c语言。P135.不够真的谢谢你了。
#include&stdio.h&void main(){&&long fun(long s);&long number,a;&printf("now input the number:\n");&scanf("%ld",&number);&a=fun(number);&printf("the result is:%ld\n",a);}
long fun(long s){ &int fnTen(int i);&//计算10的N次方&int& i=0,j=0,t;&int bit = 0;&int mt = 0;
&//判断该数总共有多少位&t =&while(t != 0)&{&&t = t/10;&&i++;&}
&t =&while(t != 0)&{&&bit = t/fnTen(i-1);&//取最高位&&if(bit%2 != 0)&&{&&&mt = mt*10+&&}&&&&t = t%fnTen(i-1);&&i --;&}&&return(mt);}
int fnTen(int i){&if(i==0)&&return 1;&if(i == 1)&&return 10;&else&&return fnTen(i-1)*10;}
为啥不用字符串读入,那不是更好操作么?
相关知识等待您来回答
编程领域专家
& &SOGOU - 京ICP证050897号

我要回帖

更多关于 c语言求解线性方程组 的文章

 

随机推荐