A. c語言糾錯
感覺你的思路有問題,你是找出了數組中最大的值然後判斷它是否是該列最小的元素,你題目意思理解錯了。你應該先找出每行上最大的元素,然後把它和他所在的行和列都記下來,然後分別判斷這三個元素是否是它所在列最小的元素,是就輸出,不是就進行下一步
或者還有一種思路,邊找邊判斷,第一行找出最大元素,然後判斷他是否是該列最小的元素;第二行找出最大元素,然後判斷他是否是該列最小的元素;第三行找出最大元素,然後判斷他是否是該列最小的元素。
有可能滿足該條件的元素有好多個。
B. C語言代碼運行出錯 怎麼改正
scanf("%s", &a);
而scanf_s()用於讀取字元串時,必須提供一個數字以表明最多讀取多少位字元,以防止溢出。
比如:scanf_s("%s" , buffer,128); /* 這里必須要有128,以表明最多讀取128個字元,如果寫成scanf_s("%s",buffer),程序將無法執行到底,且編譯器會提示「Unhandled exception at 0xfefefefe in array.exe:0xC0000005: Access tion.」 。當然在安全性要求不高的情況下,不 一定非要用scanf_s()函數,可用scanf("%s",&buffer)代替。 */
C. c語言:如何改正
strlwr未定義,可for循環判定即可,將下圖部分代碼替換。
else
{
intflag=0;
for(inti=0;i<strlen(str1);i++)
{
if(str1[i]==str2[i]||abs(str1[i]-str2[i])==32)//ASCII碼中大小寫字母相差32,如A是65,a是97
continue;
else
{
flag=1;
break;
}
}
if(flag==0)
printf("3");
else
printf("4");
}
D. C語言怎麼糾正錯誤輸入
我只能想到兩種解決辦法:
改變接收類型,從int改為char,再在scanf後面加一句fflush(stdin); 清除輸入的多餘字元
改變接收類型,從int改為char[],利用atoi函數將字元串轉為數字。(缺點:轉化失敗是返回0)