C语言几道题目,,急用!!!!

21、补全下列程序______________________。下面函数实现strcmp的功能,将两个字符串s和t进行比较,然后将两个字符串中第一个不相同字符的ASCII... 21、补全下列程序______________________。
下面函数实现strcmp的功能,将两个字符串s和t进行比较,然后将两个字符串中第一个不相同字符的ASCII码值之差作为函数值返回。
int MyStrcmp(char s[], char t[])
{
int i;
for (i=0;___________ ; i++)
{
if (s[i] == ‘\0’) return ___________ ;
}
return (s[i]-t[i]);
}
23、编写程序,求满足1+2+3+???+n>100中的最小的n值并输出。
24、编写一个函数,实现将一个整数按逆序存放到一个数组中的功能。要求使用递归函数实现。
展开
 我来答
匿名用户
2013-06-28
展开全部

21.

int MyStrcmp(char s[], char t[])
{
 int i;
 for (i=0; t[i] && (t[i] == s[i]) ; i++) 
 {
      if (s[i] == ‘\0’)  return -t[i];
 }
 return (s[i]-t[i]); 
}

 23

#include <stdio.h>

#define MAX 100

int main(){
    int i, s = 0;
    for (i=1; s<100; i++)
        s += i;

    printf("Result: %d\n", i);

    return 0;
}

 24.

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

#define MAX 100

/*
 * filo,传递进来两个count大的数组
 * 把a的内容逆序放到b里面
 * 运用递归完成,不是循环
 * 最后一个参数是sizeof(对应的数据类型),比如整形数组就sizeof(int)
 */
void filo(void *b, void *a, int count, size_t size){
    if(count>0){
        filo((char*)b+size, a, count-1, size);
        memcpy(b, (char*)a + (count -1)*size, size);
    }
}

/*
 * 用来测试filo
 */
int main(){
    int a[MAX], b[MAX];
    float a_f[MAX], b_f[MAX];
    int i;

    //测试整形
    for (i=0; i<MAX; i++) //初始化数组a
        a[i] = i;
    for (i=0; i<MAX; i++) //打印数组a
        printf("%d, ", a[i]);
    printf("\n");
    filo(b, a, MAX, sizeof(int));          //逆置a到b
    for (i=0; i<MAX; i++) //打印数组b
        printf("%d, ", b[i]);
    printf("\n");

    //测试浮点型
    for (i=0; i<MAX; i++) //初始化数组a
        a_f[i] = (float)0.1 + i;
    for (i=0; i<MAX; i++) //打印数组a
        printf("%.1f, ", a_f[i]);
    printf("\n");
    filo(b_f, a_f, MAX, sizeof(float));          //逆置a到b
    for (i=0; i<MAX; i++) //打印数组b
        printf("%.1f, ", b_f[i]);
    printf("\n");

    return 0;
}

 感谢上一位提醒,我把最后一个带有C99特性的for(int i; ; )去掉了。

C99是更新的C语言标准,不是C++。不过很多人的编译器都不支持C89。所以我也把这个改了。

P.S.最后一个filo我写得很帅哟,支持各种数据类型的数组。

而且姐用的是递归做的第24题哟,刚才那位仁兄没有用递归用了for循环啦,不符合题干要求。

选择我的答案吧,亲。

水煮冰欺凌
2013-06-28 · 超过27用户采纳过TA的回答
知道答主
回答量:70
采纳率:100%
帮助的人:37.9万
展开全部
21.
int MyStrcmp(char s[], char t[])
{
 int i;
 for (i=0;(i<strlen(s)) || (i<strlen(t)) ; i++) 
 {
      if (s[i] == ‘\0’)  return t[i];
 }
 return (s[i]-t[i]); 
}

23.

#include <stdio.h>
int main()
{
int i = 0, sum = 0;
while(1)
{
i += 1;
sum += i;
if(100 < sum)
{
i ++;
break;
}
 
}
printf("最小数是%d\n", i);
return 0;
}

24.


#include <stdio.h>
#include <stdlib.h>
#include <string>
int fun(int x);
int main()
{
int x;
printf("输入整数:\n");
scanf("%d", &x);
printf("交换结果%d\n", fun(x));
return 0;
}
int fun(int x)
{
int i, b;
char ch[6] = {0};
char y[6] = {0};
itoa(x, ch, 10);
for ( i = 0, b = strlen(ch) - 1; i < 6;b--)
{
y[i] = ch[b];
i++;
}
return atoi(y);
}

诶呦   我最后忘了用递归  表好意思 用楼下的吧  谢谢楼下的提醒

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
妞樱灬西丶1u
2013-06-27
知道答主
回答量:7
采纳率:0%
帮助的人:6.1万
展开全部
23.
void main()
{
int n=1,s=1;
while(s<=100)
{
n++;
s+=n;
}
printf("n=%d\n",n);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式