
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、编写一个函数,实现将一个整数按逆序存放到一个数组中的功能。要求使用递归函数实现。 展开
下面函数实现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、编写一个函数,实现将一个整数按逆序存放到一个数组中的功能。要求使用递归函数实现。 展开
3个回答
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循环啦,不符合题干要求。
选择我的答案吧,亲。
展开全部
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);
}
诶呦 我最后忘了用递归 表好意思 用楼下的吧 谢谢楼下的提醒
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
23.
void main()
{
int n=1,s=1;
while(s<=100)
{
n++;
s+=n;
}
printf("n=%d\n",n);
}
void main()
{
int n=1,s=1;
while(s<=100)
{
n++;
s+=n;
}
printf("n=%d\n",n);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询