c语言习题,很急

有三道c语言的题不是c++不会做,求帮忙,能帮调试好发吗?... 有三道c语言的题不是c++ 不会做,求帮忙,能帮调试好发吗? 展开
 我来答
free逍遥星空
2015-11-19 · TA获得超过345个赞
知道小有建树答主
回答量:231
采纳率:100%
帮助的人:230万
展开全部
//题目1
#include<stdio.h>
#include<math.h>
bool is_prime(int figure);
int main()
{
int figure;
scanf("%d", &figure);
if (is_prime(figure))
printf("Prime!\n");
else
printf("Not Prime!\n");
return 0;
}
bool is_prime(int figure){
if (figure == 2)
return true;
for (int i = 2; i < sqrt((double)figure) + 1; ++i)
if (figure % i == 0)
return false;
return true;
}

//题目2
#include<stdio.h>
#include<string.h>
char str[200], str1[100], str2[100];
int stringcat(char* dest, char* src1, char* src2);
int getstr(char* str);
int main(){
getstr(str1);
getstr(str2);
stringcat(str, str1, str2);
printf("%s\n", str);
return 0;
}
int getstr(char* str){
int i = 0;
char ch;
while ((ch = getchar()) != '\n')
{
str[i] = ch;
i++;
}
str[i] = '\0';
return 0;
}
int stringcat(char* dest, char* src1, char* src2){
strcpy(str, str1);
strcat(str, str2);
return 0;
}

//题目3
#include<stdio.h>
char str[100];
int getstr(char* str);
int find_longest_word(char* str);
int main(){
getstr(str);
find_longest_word(str);
return 0;
}
int find_longest_word(char* str){
int max, max_point;
int i = 0;
int max_tmp,point_tmp;
point_tmp = -1;
max = max_point = max_tmp = 0;
while (str[i] != '\0'){
if (str[i] != ' '){
if (point_tmp == -1)
point_tmp = i;
max_tmp++;
}
else{
if (max < max_tmp){
max_point = point_tmp;
max = max_point;
}
point_tmp = -1;
max_tmp = 0;
}
i++;
}
for (int j = max_point; str[j] != ' '; ++j)
printf("%c", str[j]);
printf("\n");
return 0;
}
int getstr(char* str){
int i = 0;
char ch;
while ((ch = getchar()) != '\n')
{
str[i] = ch;
i++;
}
str[i] = '\0';
return 0;
}
追问

第三个有问题,oj上过不去,

追答
有个变量写错了。。。。
//题目3
#include
char str[100];
int getstr(char* str);
int find_longest_word(char* str);
int main(){
getstr(str);
find_longest_word(str);
return 0;
}
int find_longest_word(char* str){
int max, max_point;
int i = 0;
int max_tmp,point_tmp;
point_tmp = -1;
max = max_point = max_tmp = 0;
while (str[i] != '\0'){
if (str[i] != ' '){
if (point_tmp == -1)
point_tmp = i;
max_tmp++;
}
else{
if (max < max_tmp){
max_point = point_tmp;
max = max_tmp; //变量名写错了。。。失误
}
point_tmp = -1;
max_tmp = 0;
}
i++;
}
for (int j = max_point; str[j] != ' '; ++j)
printf("%c", str[j]);
printf("\n");
return 0;
}
int getstr(char* str){
int i = 0;
char ch;
while ((ch = getchar()) != '\n')
{
str[i] = ch;
i++;
}
str[i] = '\0';
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式