#include <stdio.h>
int main()
{
int n,i,m=0,q;
char c;
scanf("%d",&n);
q=n;
for(c='A',i=0;;c++,i++){
printf("%c ",c);
m++;
if(m==q){
printf("\n");
m=m-q;
q--;}
if(q==0)
break;}
return 0;
}
#include <stdio.h>
int main()
{
int x,y,n,w,tem,i,s,q,z,t;
scanf("%d %d %d",&x,&y,&n);
z=1;
for(q=0;q<y;q++)
{
z*=x;
z=z%100000;
}
for(w=0,tem=z;tem!=0;w++)
{
tem=tem/10;
}
s=z%(int)pow(10,n);
if(w>=n)
printf("%d",s);
else{
for(i=0;i<n-w;i++){
printf("0");}
printf("%d",s);}
return 0;
}
在int里,位数有限,可以进行求余
scanf与getchar不同
1 输入内容s指定,g为键盘
2读取 s读取数字时跳过空格、制表符和换行符。 g只能输入字符型,输入时遇到回车键才从缓冲区依次提取字符。
3 结束方式 s以空格、Enter、Tab结束一次输入,不接受空格符。 g以回车结束输入(空格不结束),接受空格符。
在循环内外输入,结果也不同。值可能更新可能不更新。
printf("%0*d",n,s);
通过这个格式化字符串,程序将会根据指定的宽度n和整数s,将s以十进制形式输出,并且在左侧用0进行填充,直到达到指定的宽度n。
#include <stdio.h>
int main()
{
int w,m,c,n,i=0;
scanf("%d",&n);
for(w=n;w>=0;w--)
for(m=n;m>=0;m--)
for(c=n;c>=0;c--)
if(3*m+2*w+0.5*c==n&&m+w+c==n)
{printf("men=%d women=%d child=%d\n",m,w,c);
i=1;}
if(i==0)
printf("No solution!");
return 0;
}
问题:不用i可以吗
b=0;
while(b-->= 0) {}
最后b等于几?
答案是-2,循环虽然就一次,但是两次判断,两次自减