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

c语言的问题!

发布网友 发布时间:2022-05-15 02:53

我来回答

6个回答

热心网友 时间:2023-10-05 07:23

嘿嘿,在OJ上做题肯定要吃PE的苦,把最后最后最后一个回车去掉再试试

恩,读数据那边也改下,还有这个

不行的话把网址发出来看下

#include<stdio.h>
#include<string.h>
int main()
{
char str1[10000],str2[10000];
int n,i,l1,l2;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%s %s",str1,str2);
l1=strlen(str1);
l2=strlen(str2);
if(l1>l2)
printf("%s",str1);
else if(l1<l2)
printf("%s",str2);
else
printf("no - -!");
printf("\n");
if(n-i)
printf("\n");
}
return 0;
}
现在不能提交,所以只能凭着感觉修改下了
首先 这题没有说明 数据范围,所以字符串 大小 应该 预置得大一些,比如1W,10W,否则因为数组大小而wa 就很不值得。
其他就是一些细节问题了,比如输入尽量按照 题目规定的 模式输入,最后不能多输出回车,return 0;等等吧。
个人认为 这题就 一组测试数据,很多OJ 对一组 和多组数据 都可以用EOF 处理,但有个别题目如果是一组数据,用EOF 的话会tle,这种情况比较少,楼主注意下就好。
楼主如果是新手,建议你去 杭电 OJ做题,里面题目各种档次的都有,很适合初学者,过渡者,而且他的讨论区有很多材料,题目代码,楼主遇到困难时可以比较顺利的解决。
网址是:http://acm.h.e.cn/

热心网友 时间:2023-10-05 07:23

scanf("%s%s",&str1,&str2)改成
scanf("%s%s",str1,str2)
数组名即表示在内存中首地址,不用再取变量地址
#include <stdio.h>
#include <string.h>

int main()
{
int n, i;
int len1, len2;

char szWord1[101], szWord2[101];

while (scanf("%d", &n) == 1)
{
for (i = 0; i < n; i++)
{
scanf("%s %s", szWord1, szWord2);
len1 = strlen(szWord1);
len2 = strlen(szWord2);

if (len1 == len2)
printf("no - -!\n\n");
else if (len1 > len2)
printf("%s\n\n", szWord1);
else
printf("%s\n\n", szWord2);
}
}

return 0;
}

热心网友 时间:2023-10-05 07:24

看来很久才明白你的意思。
#include<iostream.h>
#include<string.h>
int main()
{
char str1[100],str2[100];
int l1,l2;
cout<<"请输入两个字符串"<<endl;
while(cin)
{
cin>>str1>>str2;
l1=strlen(str1);
l2=strlen(str2);
if(l1>l2)
cout<<str1<<endl;
else if(l1<l2)
cout<<l2<<endl;
else
cout<<"no - -!"<<endl;
cout<<endl;
cout<<"请再输入两个字符串"<<endl;
}
return 0;
}
//已经运行过了,希望对你有用!
//另外一个,在第一个基础上改进的,也运行过了。
//只是一点,我这是输入n对,比较一组,输出一次,与你的要求有点不一样。
//你可以用一个大数组把要输出的保存,然后一次性输出,由于时间,
//我帮你写到这里吧,希望对你有帮助。
#include<iostream.h>
#include<string.h>
int main()
{
char str1[100],str2[100];
int l1,l2;
int n;
cout<<"请输入字符串的对数"<<endl;
cin>>n;
//判断n的有效性
while(n<1)
{
cout<<"n不能小于1"<<endl;
}
cout<<"请输入"<<n<<"对字符串"<<endl;
for(int i=0;i<n;i++)
{
cin>>str1>>str2;
l1=strlen(str1);
l2=strlen(str2);
if(l1>l2)
cout<<str1<<endl;//可以定义另外一个数组
//将str1保存
else if(l1<l2)
cout<<str2<<endl;//同上
else
cout<<"no - -!"<<endl;
}
return 0;
}

热心网友 时间:2023-10-05 07:24

程序没有问题,虽然&str1和&str2之前的&是不必要的,但是加上之后也不会导致程序失败,估计题目原意是要求先将n组单词全部输入之后再输出结果,而不是每输入一组就输出该组的结果,以下程序可以达到这个效果:

//---------------------------------------------------------------------------

#include<stdio.h>
#include <stdlib.h>
#include<string.h>
int main()
{ char str1[100],str2[100],**m=NULL;
int n,i,j,l1,l2;

while(scanf("%d",&n)!=EOF)
{
m=malloc(sizeof(char *)*n);
for(i=1;i<=n;i++)
{ scanf("%s%s",str1,str2);
l1=strlen(str1);
l2=strlen(str2);
m[i-1]=malloc(sizeof(char)*((l1>l2?l1:l2)+1));
if(l1>l2) strcpy(m[i-1],str1);
else if(l1<l2) strcpy(m[i-1],str2);
else strcpy(m[i-1],"no - -!");
}
for (i = 0; i<n; i++) {
printf("\n%s\n",m[i]);
}

free(m);
}

return 0;
}
//---------------------------------------------------------------------------

热心网友 时间:2023-10-05 07:25

这个题目我的理解是题目中只输入一个n,然后跟对应n对单词。所以我估计格式错误就只能是每组的最后一个回车不要输出。现在提交不了。题目也没有给出明确的单词长度,不过你说的是格式问题,所以应该就不会有数组越界的问题了。
#include<stdio.h>

#include<string.h>
int main()
{
char str1[100],str2[100];
int n,i,j,l1,l2;
while(scanf("%d",&n)!=EOF)
{
for(i=1;i<=n;i++)
{
scanf("%s%s",&str1,&str2);
l1=strlen(str1);
l2=strlen(str2);
if(l1>l2)
printf("%s\n",str1);
else
if(l1<l2)
printf("%s\n",str2);
else
printf("no - -!\n");
if(i!=n) printf("\n");//最后一行不用
}

}
}

热心网友 时间:2023-10-05 07:26

程序没有错误啊,只是不能跳出循环罢了
稍微修改一下就好了
#include<stdio.h>
#include<string.h>
int main()
{
char str1[100],str2[100];
int n,i,j,l1,l2;
scanf("%d",&n);//这里不应该用while,否则当输入的数有效时会造成死循环
if(n<0)
printf("the number is wrong!\n");
else
for(i=1;i<=n;i++)
{
scanf("%s%s",&str1,&str2);
l1=strlen(str1);
l2=strlen(str2);
if(l1>l2) printf("%s\n",str1);
else if(l1<l2)
printf("%s\n",str2);
else
printf("no - -!\n");
printf("\n");
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
找专业防水队做完还漏水怎么维权 法院会受理房屋漏水造成的纠纷吗? 巴西龟最长活多久,家养!!! 养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 无奈\不解,UvaOJ为什么不提供出错时的测试数据 这个是不是加密了,哪位高人可以解密 这是《盗墓笔记》的动漫吗?叫什么? 有没有什么,探险,盗墓之类的漫画? S.W.A.T的美国洛杉矶警察部队 盗墓笔记是不是有动漫版,如果有那里可以看,求详解。 国产动画《盗墓笔记:秦岭神树》开播,如何评价这部动画? 《青云隐》by云海超宇txt下载在线阅读全文,求百度网盘云资源 盗墓笔记漫画2:七星鲁王宫的简介 盗墓笔记一共出了多少本书 除了一到九本还有没有其它的 漫画多少本叫什么名字。。。 越全越好、、、 盗墓笔记的漫画亚太版和美版各出了几部了? 急求!!! 的密封条掉了,怎么办 以简单为话题的议论文 毕业论文如何简单总出 简单的议论文 论文格式(简单的) 简单说下论文的格式 以简单为题写议论文 怎样写论文,简单的方法 简单论文怎么写 AMD 速龙II X4 640 ? pku acm 1002 487-3279 为什么一定要把字符串转化成数字吗?? 跪求美国精神病电影,【免费高清】在线观看百度网盘资源 绝地求生用什么耳机好绝地求生吧 为什么每次上绝地求生就出问题 为什么我玩绝地求生吧画质跳高了画面还是很模糊? 绝地求生吧 绝地求生贴吧 吃鸡,哪个网吧可以吃鸡 我的macbookpor笔记本能玩绝地求生吧,求下载地址 比起绝地求生,你觉得和穿越火线相比,哪些元素更吸引你? 我想买电脑,主玩绝地求生,最好要能一边玩绝地求生一边直播。但是这对电脑里面的什么配置要求高啊? 世界上玩英雄联盟的人多还是绝地求生的人多? 配上我的显卡960-4G可以吃鸡了吧 干香菇怎么做好吃大全 太阳能辐照什么意思 下图是我国某地一天内的气温日变化、地表的长波辐射能量和入射到地面的太阳能量日变化图,该日前后,开封 太阳能发电有辐射吗 对于没有规范上没有确切太阳能辐照量的城市,辐照量应如何选择? 太阳能面积计算中辐照量怎么选取