重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
打开include.h头文件。
建平网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联2013年至今到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。
找到有定义输入输出的语句,写在前面。后面直接用就行了,至于是哪一句我也没有研究过。
其实很多头文件都有输入输出功能,那你就多找几个试试。
#include "stdio.h"
#include "string.h"
int main()
{
char str[10][30]={0};
char tem[30]={0};
int i,j;
printf("请输入10个单词:");
for(i=0;i10;i++)//输入
scanf("%s",str[i]);
for(i=0;i9;i++)//排序
for(j=i+1;j10;j++)
if(strcmp(str[i],str[j])0)
{
strcpy(tem,str[i]);
strcpy(str[i],str[j]);
strcpy(str[j],tem);
}
printf("这10个单词按照字典排序输出为:\n");
for(i=0;i10;i++)// 输出
{
printf("%s\n",str[i]);
}
}
自己做strcmp和strcpy子函数,或者把能实现相同功能的子函数模块用for循环来处理
strcmp子函数的功能是比较str1和str1字符串的每个字符
用一个for循环来实现这个功能的
功能实现,模拟着函数
void
mystrcmp(char
*str1,char
*str2)
{
int
i;
for(i=0;str1[i]||str2[i];i++)
if(str1[i]str2[i])
retrun
-1;
else
if(str1[i]str2[i])
return
1;
return
0;
}
strcpy拷贝子函数也是用一个for循环来实现的
void
mystrcpy(char
*str1,char
*str2)
{
int
i=0;
while(str1[i]=str2[i])
i++;
}
你完全可以把这个功能模块用着相应的位置
for(i=0;in-1;i++)
{
for(j=i+1;jn;j++)
{
排序大循环没问题
for(;kl;k++)
{
if(*(str[i]+k)!=*(str[j]+k))
//你这里只是判断了不相等的情况,大小没有判断
这一块应该是比较部分吧,感觉应该不对
应该是
for(k=0;str[i][k]||str[j][k];k++)
{
if(str[i][k]str[j][k])
//也可以用指针,大了就交换,小了或等于不交换
交换代码
}
l=min(strlen(str[i]),strlen(str[j]));
这一句完全可以用l=strlen(str[i])strlen(str[j])?strlen(str[i]):strlen(str[j]);
不用子函数,或者一个if--else来解决
temp=str[j];
str[j]=str[i];
str[i]=temp;
这是交换的代码,字符串不能这么交换,可以用strcpy拷贝函数,或者字符一个一个的交换
不能整个字符串用=来赋值
#includestdio.h
long Re0(long a);
int Fact(int a);
main()
{
long array[1000];
char str[1000][1000];
char t[1000];
int m = 0;
int k = 0;
int j;
long p=0,chino,i,guess;
scanf("%ld",chino);
for(i=1;i=chino;i++)
{
guess=Re0(i);
if(guess==i)
{
array[k++] = i;
}
}
for(i = 0; i k ;i++)
{
sprintf(str[i],"%d",array[i]);
}
for (i = 0; i k - 1; i++) //将字符串排序
{
for (j = 0; j k - 1 - i;j++)
if (strcmp(str[j], str[j + 1]) 0)
{
strcpy(t, str[j]);
strcpy(str[j], str[j + 1]);
strcpy(str[j+1], t);
}
}
for (i = 0; i k; i++) //输出
{
if(i == k-1)
printf("%s",str[i]);
else
printf("%s ",str[i]);
}
}
int Fact(int a)
{
if(a==0||a==1)
return 1;
else if(a1)
return a*Fact(a-1);
}
long Re0(long a) //计算各个位数之和
{
long sum;
int A,B,C,D,E; //分别为个位、十位、百位、千位、万位
if(a10)
return Fact(a);
else if(a=10a100)
{
A=a%10;
B=a/10;
sum=Fact(A)+Fact(B);
return sum;
}
else if(a=100a1000)
{
A=a%10;
B=a%100/10;
C=a/100;
sum=Fact(A)+Fact(B)+Fact(C);
return sum;
}
else if(a=1000a10000)
{
A=a%10;
B=a%100/10;
C=a%1000/100;
D=a/1000;
sum=Fact(A)+Fact(B)+Fact(C)+Fact(D);
return sum;
}
else if(a=10000a100000)
{
A=a%10;
B=a%100/10;
C=a%1000/100;
D=a%10000/1000;
E=a/10000;
sum=Fact(A)+Fact(B)+Fact(C)+Fact(D)+Fact(E);
return sum;
}
}