C语言:将一个数组里的数据逆序后再输出
我就编到这里啦:#include<stdio.h>#include<string.h>voidmain(){chara[100],t;inti,k;gets(a);k=s...
我就编到这里啦:
#include<stdio.h>
#include<string.h>
void main()
{
char a[100],t;
int i,k;
gets(a);
k=strlen(a);
for(i=0;i<k/2;i++)
{
t=a[i];
a[i]=a[k-1-i];
a[k-1-i]=t;
}
puts(a);
}
但是题目还有要求:每个测试用例为一组大于0的数字,数字个数小于100,输入0时结束输入。
这个要求改怎么编呐??? 展开
#include<stdio.h>
#include<string.h>
void main()
{
char a[100],t;
int i,k;
gets(a);
k=strlen(a);
for(i=0;i<k/2;i++)
{
t=a[i];
a[i]=a[k-1-i];
a[k-1-i]=t;
}
puts(a);
}
但是题目还有要求:每个测试用例为一组大于0的数字,数字个数小于100,输入0时结束输入。
这个要求改怎么编呐??? 展开
2个回答
2014-05-07
展开全部
#include<stdio.h>
#include<string.h>
void main()
{
char a[100],t;
int i,k;
begin:
gets(a);
if(a[0]=='0')goto end;
k=strlen(a);
for(i=0;i<k/2;i++)
{
t=a[i];
a[i]=a[k-1-i];
a[k-1-i]=t;
}
puts(a);
goto begin;
end:
return;
}
加了两行goto,不知道和不和要求
#include<string.h>
void main()
{
char a[100],t;
int i,k;
begin:
gets(a);
if(a[0]=='0')goto end;
k=strlen(a);
for(i=0;i<k/2;i++)
{
t=a[i];
a[i]=a[k-1-i];
a[k-1-i]=t;
}
puts(a);
goto begin;
end:
return;
}
加了两行goto,不知道和不和要求
更多追问追答
追问
不对的呢!你的程序的意思是,第一个数字输入为0,程序结束。而我题目中的意思是“输入0时输入结束”,首先,不是程序结束,其次,输入0时结束并不是指只有第一个输入数字为0的情况下。
嗯........是这样的呐.......
假如输入:12340
那么输出:4321
追答
是这样啊,可是这样不就是说输入的数里不能有0吗,不大对啊
如果你是意思是输入到0就终止,这样大思路都有问题啊,
你是大几啊,什么专业啊,交流一下,我也有好多麻烦的东西
我想你的程序理解应该有问题,原题的意思可能是输入很多数,
个数不确定,直到输入0,但是并不是把每个数都逆序输出,而是只对整个数组的数据逆输出而已,例如输入
123 234 34 45 0
就输出
45 34 234 123 这样才对吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是输人数字吗??不是字符。 比如12 32 算几个数字。。。
更多追问追答
追问
举个例子,要这样的效果,输入0的时候输入结束,然后开始逆序输出
假如输入:12340
那么输出:4321
追答
我知道了。。。等会帮你完成
#include<stdio.h>
int main(){
char ss[100];
char s;
scanf("%c",&s);
int i=0;
while(s!='0')
{
ss[i++]=s;
scanf("%c",&s);
}
ss[i]='\0';
for(i-- ;i>=0;i--){
printf("%c",ss[i]);
}
}
不懂再问
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |