| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 988 人关注过本帖
标题:句子的输出 麻烦求解
取消只看楼主 加入收藏
Ever0123
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2020-11-12
结帖率:100%
收藏
已结贴  问题点数:30 回复次数:1 
句子的输出 麻烦求解
题目是
事先允许最多五个英文字符串输入后,再指定输出顺序的编号(即对应输入字符串的顺序),使对应输出的英文字符串按照指定的顺序输出在一行上。
输入:
第一行:输入一个正整数,表示将要输入的字符串的个数,最大为5。
第二行起:在每一行内对应输入一个字符串,限制在10个字符以内(含10个字符)。
输入完最后一个字符串的下一行:依次输入输出顺序编号,从0开始(即0表示输入的第一个字符串,1表示输入的第二个字符串,依次类推),两个相邻数字之间用空格隔开。
输出:
只有一行,按照输入指定的顺序输出字符串。两个相邻三字符串间用空格隔开,最后一个字符串后没有空格且应换行。
输入样例:
3
world
Hello
!
1 0 2
输出样例:
Hello world !

我写的代码是

#include<stdio.h>
#include<string.h>
int main()
{
  int i,j,num;
  char s[5][11]={0};
  scanf("%d",&num);
  for (i=0;i<num;i++)
  {
     fflush(stdin);
     gets(s[i]);
  }
  for (i=0;i<num;i++)
  {
     scanf("%d",&j);
     printf("%s ",s[j]);
  }
return 0;
}
但是我输出来的不对,我也不知道哪里出错了,比如我输入
3
world

hello
1 2 0
他会输出
! hello world
麻烦有空帮我看看,谢谢你,麻烦了,嘿嘿,或者有什么想法也可以分享一下。
然后,我朋友写的

#include <stdio.h>
#include <stdlib.h>
char s[6][11];
int a[5][2];
int n;
void input()
{
scanf("%d",&n);
getchar();
int i;
for(i=0;i<n;i++)
gets(s[i]);
for(i=0;i<n;i++)
{
a[i][0]=i;
scanf("%d",&a[i][1]);
}
}
void sort()
{
int i,j;
for(i=0;i<n;i++)
for(j=i;j<n;j++)
{
if(a[i][1]>a[j][1])
{
int t0=a[i][0],t1=a[i][1];
a[i][0]=a[j][0];
a[i][1]=a[j][1];
a[j][0]=t0;
a[j][1]=t1;
}
}
}
void output()
{
int i;
for(i=0;i<n-1;i++)
printf("%s ",s[a[i][0]]);
printf("%s\n",s[a[n-1][0]]);
}
int main(int argc, char *argv[])
{
input();
sort();
output();
system("PAUSE");
return 0;
}

在oj上过不了,但是测试的时候是对的。求解,谢谢。
搜索更多相关主题的帖子: 输入 int 字符串 输出 for 
2020-11-19 00:45
Ever0123
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2020-11-12
收藏
得分:0 
回复 2楼 rjsp
我是真的不太懂,我还不知道怎么入手这道题,wuwuwuwu,您觉得我该怎么开始学习,该则么练习好啊,
2020-11-19 20:52
快速回复:句子的输出 麻烦求解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015167 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved