1.打印数字金字塔
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
int i = 0,j = 0,k = 0;
int n = 0;
printf("请输入行数:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j = 1; j < n - i; j++)
{
printf(" ");
}
for(k=0;k<i*2+1;k++)
{
printf("*");
}
printf("\n");
}
return 0;
}
2.在终端上循环输入一串内容,然后按下回车(n) 结束输入,判断输入的数字有几个 大写字母几个小写字母几个?
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
int shuzi = 0,daxie = 0,xiaoxie = 0,others = 0;
char a = '0';
printf("请输入一串内容\n");
while(a != '\n')
{
scanf("%c",&a);
if(a >= '0' && a <= '9')
{
shuzi++;
}
else if(a >= 'a' && a <= 'z')
{
xiaoxie++;
}
else if(a >= 'A' && a <= 'Z')
{
daxie++;
}
else
{
others++;
}
}
printf("你输入的内容有%d个数字,%d个小写字母,%d个大写字母,%d个其他字符\n",shuzi,xiaoxie,daxie,others-1);
return 0;
}
优化:通过优化 while((c = getchar()) != '\n'),实现不把回车算进other里
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
int shuzi = 0,daxie = 0,xiaoxie = 0,other = 0;
char c = 'a';
while((c = getchar()) != '\n')
{
if(c >= '0' && c <= '9')
{
shuzi++;
}
else if(c >= 'a' && c <='z')
{
xiaoxie++;
}
else if(c >= 'A' && c <= 'Z')
{
daxie++;
}
else
{
other++;
}
}
printf("数字%d个,小写字母%d个,大写字母%d个,其他字符%d个\n",shuzi,xiaoxie,daxie,other);
return 0;
}
3.打印1000以内的所有质数
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
int n = 1;
int sum = 0;
while(n < 1000)
{
for(n=2;n<1000;n++)
{
for(int i=2;i<n;i++)
{
if(n % i == 0)
{
sum = sum + 1;
}
}
if(sum == 0)
{
printf("%4d",n);
}
sum = 0;
}
printf("\n");
}
return 0;
}