算法题
棋盘问题
设有一个N×M方格的棋盘(1≤N≤100,1≤M≤100)
求出该棋盘中包含有多少个正方形、多少个长方形(不包括正方形)。
例如:当 N=2, M=3N=2,M=3时:
正方形的个数有8个:即边长为1的正方形有6个;
边长为22的正方形有2个。
长方形的个数有10个:
即
2×1的长方形有4个
1×2的长方形有3个:
3×1的长方形有2个:
23×2的长方形有1个:
如上例:输入:2,3
输出:8,10
#include<stdio.h>
int main(void)
{
int m,n,zheng,chang,bi,i,j;
zheng=chang=0;
scanf("%d,%d",&m,&n);
bi=(m>n)?n:m;
for(i=0;i<bi;i++)
zheng=zheng+(m-i)*(n-i);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
chang=chang+(m-i)*(n-j);
chang=chang-zheng;
printf("%d,%d",zheng,chang);
return 0;
}
倒计时
设计一个倒计时的程序。
#include<stdio.h>
int main(void)
{
int fen,miao,i,j;
scanf("%d %d",&fen,&miao);
for(i=fen;i>=0;i--)
for(j=miao;j>=0;j--)
{
printf("%02d:%02d\n",i,j);
miao=60;
}
return 0;
}
C语言基础
代码问题
1、找出下面代码的问题
#include<stdio.h>
char *f();
int main(void)
{
f();
return 0;
}
char *f()
{
char s[]="hello,world!";//需要声明为static char s[]=
return s;
}
读代码
阅读下面语句,写出输出结果
1.执行语句printf("%c",'A'+32);屏幕显示____("a")
A的ASC2是65 ,a的ASC2是97,在这里将A作为65与32做加法运算,然后将97对应的字符输出,就是a。
2.执行语句printf("%d",-1 > sizeof(int));屏幕显示____("1")
sizeof的返回值是无符号数,-1是有符号数,计算机先将有符号数转化为无符号数再进行比较,-1转化为无符号数时由于溢出,结果为4294967295,比4大所以-1 > sizeof(int)的值为真(1)。
3.执行语句printf("%x",-1);屏幕显示____("ffffffff")
%x输出的是十六进制的无符号数,-1转化为无符号数后因为溢出故结果为ffffffff。
4.执行语句printf("%d",!9);屏幕显示____(0)
c语言中非零为真,9代表真,!9代表假(0)。
注意:sizeof()和strlen返回的都是无符号长整型,格式控制符%lu
❤️ 转载文章请注明出处,谢谢!❤️