十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
首先我们先解决两个问题,第一,fun()函数和main()函数中M值的问题,因为虽然两个参数的参数名相同但是它们的存储位置不同,所以在fun()函数中改变M值主函数中M的值不会改变(如果想改变它的值可以考虑用指针,具体的你自己看书吧)
公司主营业务:成都网站设计、成都网站制作、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出安庆免费做网站回馈大家。
第二,函数调用问题,fun(M/2)这种条用方式是很危险的,它在fun()函数中执行时的表达式是这样的 M/2=M/2=2?5:0, 所以我建议你以后在你没有十足的把握的情况下不要使用。
第一步,主函数中M值没有变化 M1=5
第二步,主函数中M值变为2,fun函数中要仔细推一下才能知道,但是不影响主函数中M值,M2=2,有兴趣你可以去算算.
第三步,M的值无变化,所以为M3=2
输入一个不多于4位的正整数,求它的位数,并按逆序输出各位数字,可以参考下面的代码:
#includestdio.h
int main()
{
int n, ans = 0;
scanf("%d", n);
printf("逆序输出:");
while(n != 0)
{
int t;
t = n % 10;
n /= 10;
ans++;
printf("%d ", t);
}
puts("");
printf("位数为:%d\n", ans); // 位数
return 0;
}
扩展资料:
C语言函数列举:
C语言asin()函数:求反正弦
C语言atan()函数:求反正切
C语言atan2()函数:求x/y的反正切值
C语言cos()函数:求余弦
C语言cosh()函数:求双曲余弦
C语言log()函数:返回x的自然对数(以e为底的对数)
C语言ldiv()函数:求两个数的商和余数(针对long类型)
C语言isupper()函数:判断一个字符是否是大写字母
C语言isspace()函数:判断一个字符是否是空白符
参考资料来源:百度百科-c语言
“%”运算符的意思是取余数,“/”运算符的意思是求商
i=-19
-19%4=4×(-4)+(-3)
所以结果是-3
#include stdio.h
#include string.h
#define MAX 1000
int next[MAX];
int s_len;
char str[MAX], str_t[MAX];
void get_next(){
int i;
next[0] = -1;
for(i = 1; i s_len; ++i){
int j = next[i-1];
while(str_t[i] != str_t[j+1] j != -1)
j = next[j];
if(str_t[i] == str_t[j+1])
next[i] = j + 1;
else
next[i] = -1;
}
}
int kmp(char *str, char *str_t){
int i;
int len = strlen(str);
int j;
int cnt = 0;
s_len = strlen(str_t);
get_next();
j = -1;
for(i = 0; i len; ++i){
if(str[i] != str_t[j+1] j != -1)
j = next[j];
if(str[i] == str_t[j+1]){
++j;
}
if(j == s_len-1){
cnt++;
j = next[j];
}
}
return cnt;
}
int main(){
scanf("%s %s", str, str_t);
printf("cnt %d\n", kmp(str, str_t));
return 0;
}
输入 abcdefabcdefabcdef cde