亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求高手認真讀讀我的程序,幫忙看看錯誤在哪···~~編譯的時候我暈了~~

求高手認真讀讀我的程序,幫忙看看錯誤在哪···~~編譯的時候我暈了~~

守著星空守著你 2022-11-03 13:09:19
我的程序如下~~#include<stdio.h>#include<string.h>float fun(int,char **);int main(){char ss[10][87];int numz=0;float k;do{printf("輸入第%d個字符串:\n",numz);gets(ss[numz]);numz+=1;}while(*ss[numz-1]!="****");numz-=2;k=fun(numz,ss);printf("地址是:%f\n",k);return 0;}float fun(int num,char **max){int i;char s[10][87];s[0]=*(max);for(i=0;i<=num-1;i++){if(strlen(s)<strlen(*(max+i+1)))s[0]=*(max+i+1);}printf("最長的字符串是:\n");puts(s[0]);*max=s[0];return (max);}--------------------Configuration: lianan - Win32 Debug--------------------Compiling...lianan.cC:\Documents and Settings\Administrator\桌面\編程\lianan.c(12) : warning C4047: '!=' : 'int ' differs in levels of indirection from 'char [5]'C:\Documents and Settings\Administrator\桌面\編程\lianan.c(14) : warning C4047: 'function' : 'char ** ' differs in levels of indirection from 'char [10][87]'C:\Documents and Settings\Administrator\桌面\編程\lianan.c(14) : warning C4024: 'fun' : different types for formal and actual parameter 2C:\Documents and Settings\Administrator\桌面\編程\lianan.c(22) : error C2106: '=' : left operand must be l-valueC:\Documents and Settings\Administrator\桌面\編程\lianan.c(25) : warning C4047: 'function' : 'const char *' differs in levels of indirection from 'char [10][87]'C:\Documents and Settings\Administrator\桌面\編程\lianan.c(25) : warning C4024: 'strlen' : different types for formal and actual parameter 1C:\Documents and Settings\Administrator\桌面\編程\lianan.c(26) : error C2106: '=' : left operand must be l-valueC:\Documents and Settings\Administrator\桌面\編程\lianan.c(31) : error C2115: 'return' : incompatible typesError executing cl.exe.
查看完整描述

3 回答

?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

#include<stdio.h>
#include<string.h>
char* fun(int,char max[][87]);
int main()
{
char ss[10][87];int numz=0;char* k;
do
{
printf("輸入第%d個字符串:\n",numz);
gets(ss[numz]);
numz+=1;
}while(strcmp(ss[numz-1],"****")!=0);
numz-=2;
k=fun(numz,ss);
printf("地址是:%X\n",k);
return 0;
}
char* fun(int num, char max[][87])
{
int i;
char *s;
s=max[0];
for(i=0;i<=num-1;i++)
{
if(strlen(s)<strlen(max[i]))
s = max[i];
}
printf("最長的字符串是:\n");
puts(s);
return (s);
}

改了一下 自己研究一下 呵呵!~ 沒什么大問題
PS:只隨便調試了一下 不知道算法有無問題


查看完整回答
反對 回復 2022-11-08
?
牧羊人nacy

TA貢獻1862條經驗 獲得超7個贊

上面的都做出來了我就不做了,就分析下你錯的地方:

C:\Documents and Settings\Administrator\桌面\編程\lianan.c(12) : warning C4047: '!=' : 'int ' differs in levels of indirection from 'char [5]'
錯誤語句:while(*ss[numz-1]!="****");
解釋:*ss[numz-1]代表一個地址不能等于字符串,可改為ss[numz-1]。

C:\Documents and Settings\Administrator\桌面\編程\lianan.c(14) : warning C4047: 'function' : 'char ** ' differs in levels of indirection from 'char [10][87]'
錯誤語句:k=fun(numz,ss);
解釋:ss為首地址指針。不能傳給char ** ,只能傳給char *。

C:\Documents and Settings\Administrator\桌面\編程\lianan.c(22) : error C2106: '=' : left operand must be l-value
錯誤語句:s[0]=*(max);
解釋s[0]為一個地址指針,不能存儲。給數組賦值要用
for(int i=0;i<max;i++){s[0][i]=*(max+i);}

C:\Documents and Settings\Administrator\桌面\編程\lianan.c(25) : warning C4047: 'function' : 'const char *' differs in levels of indirection from 'char [10][87]'
錯誤語句:if(strlen(s)<strlen(*(max+i+1)))
解釋:strlen需要傳遞一個char地址,s可改為s[0]。

C:\Documents and Settings\Administrator\桌面\編程\lianan.c(31) : error C2115: 'return' : incompatible types
錯誤語句:return (max);
解釋:函數返回值類型要更定義類型一樣。max為char ** 類型,定義函數確為float。

相同錯誤就不再說了。


查看完整回答
反對 回復 2022-11-08
?
揚帆大魚

TA貢獻1799條經驗 獲得超9個贊

#include <stdio.h>
#include <string.h>

#define MAX_ROW 10
#define MAX_COL 87

/**********************************/
char * fun(int num,char max[][MAX_COL])
{
int i;
char *s;
s=*(max);
for(i=0;i<=num-1;i++)
{
if(strlen(s)<strlen(max+i+1)) { s=max+i+1; }
}
printf("The longest string is :\n");
puts(s);

return s;
}

/***********************************/

int main()
{
char ss[MAX_ROW][MAX_COL];
int numz=0;
char *k;

do
{
printf("Please input string_%d :\n",numz);
gets(ss[numz]);
numz+=1;
}while(strcmp(ss[numz-1],"****"));
/* 字符串的比較不能直接用地址,但可以用strcmp函數。相同返回0,不同則返回1 */

numz-=2;
k=fun(numz,ss);
printf("The address is 0x%x\n",k);

getch();
return 0;
}


查看完整回答
反對 回復 2022-11-08
  • 3 回答
  • 0 關注
  • 182 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號