今天写几条例题。
打印出1到n里有多少个1.
程序如下:
#include<stdio.h>
int main()
{
int i,n,a,b,c,d;
int s=0;
printf("shuru n n<10000\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
a=i/1000;
b=i%1000/100;
c=i%1000%100/10;
d=i%1000%100%10;
if(a==1)
s=s++;
if(b==1)
s=s++;
if(c==1)
s=s++;
if(d==1)
s=s++;
}
printf("%d\n",s);
return 0;
}
{
int i,n,a,b,c,d;
int s=0;
printf("shuru n n<10000\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
a=i/1000;
b=i%1000/100;
c=i%1000%100/10;
d=i%1000%100%10;
if(a==1)
s=s++;
if(b==1)
s=s++;
if(c==1)
s=s++;
if(d==1)
s=s++;
}
printf("%d\n",s);
return 0;
}
编写程序实现strcmp函数的功能,我是这样写的
#include<stdio.h>
int main()
{
char str1[10],str2[10];
scanf("%s %s",str1,str2);
int i;
for(i=0;str1[i]!='\0'&&str2[i]!='\0';i++)
{
if(str1[i]==str2[i])
continue;
else
{
if(str1[i]<str2[i])
{
printf("0\n");
break;
}
else
{
printf("1\n");
break;
}
}
}
return 0;
}
{
char str1[10],str2[10];
scanf("%s %s",str1,str2);
int i;
for(i=0;str1[i]!='\0'&&str2[i]!='\0';i++)
{
if(str1[i]==str2[i])
continue;
else
{
if(str1[i]<str2[i])
{
printf("0\n");
break;
}
else
{
printf("1\n");
break;
}
}
}
return 0;
}
但有一个问题,就是当这2个字符串相等时不能输出,哪位大神教教我怎么改啊。
如何将一个十进制数转换为八进值数(不能使用%o输出)?