永发信息网

问一道C语言的问题

答案:4  悬赏:70  手机版
解决时间 2021-04-02 10:33
  • 提问者网友:雨不眠的下
  • 2021-04-01 22:27
问一道C语言的问题
最佳答案
  • 五星知识达人网友:山有枢
  • 2021-04-01 22:35
第一,for用于查找实际所输入的字符s[i]。
第二,输出错位的字符前判断s[i]是为了保证s[i]确实是所输入的字符。
如果扫到s[10] 也就是char字符0的时候,会不会因为s[i] 为0 ,而导致 && 不成立?——不会的。追答要注意,输入字母时必须是大写字母,这里没有考虑小写字母的情况。追问按你这么改了的话,输出就不对了。追答是的,原来程序没有问题,但输入字母时必须是大写字母(程序没有考虑小写字母的情况)。
s[i] &&s[i] != c 目的是:或者找到输入的字符结束循环,或者到了字符串的结束符(s[i]='\0')结束循环。
s串中没有空格字符,就表示空格不进行错位转换。追问懂了懂了!
全部回答
  • 1楼网友:污到你湿
  • 2021-04-02 00:53
第一:字符串是以字符'\0'结束的,他的ASCII编码值为0, s[i] 是判断当前位置是否到达字符串末尾
当s[i] == c时那个循环会停止,也就是找到了那个字符。
第二:上面已经说了,就是判断该字符是否找到,找到就输出对应的答案,否则就输出原来的字符。
  • 2楼网友:西岸风
  • 2021-04-02 00:23
这是c语言还是c++,第二行的常变量是什么意思?追问重点是算法上的问题吧。。第二行的const只是因为不加会有warning。。强迫症所以……追答你这个可以运行吗,假如s[i]='a',你怎么确定s[i-1]='s';追问可以运行。。。。追答可以举几个别的样例吗,谢谢
  • 3楼网友:逃夭
  • 2021-04-02 00:09
#include //望采纳
int main (void)
{
void max(int *);
void min(int *);
int arr[4][5];
int i,j;
for (i=0;i<4;i++)
{
for (j=0;j<5;j++)
{
scanf("%d",&arr[i][j]);
}
}//12 32 43 5 23 45 32 45 32 65 23 56 434 2324 456 243 4232 343 323 232
max(arr);
min(arr);
return 0;
}
void max(int *array)
{
int x,y,maxs,i,j;
maxs=*array;
for(x=0;x<4;x++)
{
for (y=0;y<5;y++)
{

if(maxs<*(array+ x * 5+y))
{
i=x;
j=y;
maxs=*(array+ x * 5+y);
}

}
}
printf("最大的数是:%d,位置[%d][%d]\n",maxs,i,j);
}
void min(int *array)
{
int x,y,maxs,i,j;
maxs=*array;
for(x=0;x<4;x++)
{
for (y=0;y<5;y++)
{

if(maxs>*(array+ x * 5+y))
{
i=x;
j=y;
maxs=*(array+ x * 5+y);
}

}
}
printf("最小的数是:%d,位置[%d][%d]\n",maxs,i,j);
}追问自重。。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯