int main(int argv,char *argc[]){
int t,M,K,n,w,i
printf("Input t(0<t<101)...\n")
if(scanf("%d",&t)!=1 || t<1 || t>100){//这个循环保证输入的t是合法的,否则退出
printf("Input error, exit...\n")
return 0
}
while(t--){
while(1){//这个循环保证输入是合法的,否则要求重输
printf("Input M & K(1<K<=M<100)...\n")
if(scanf("%d%d",&M,&K)==2 && K>1 && M<100 && K<=M)
break
printf("Input error, redo: ")
fflush(stdin)
}
for(n=1n<=Mn++){//n从1遍历到M看看有没有解
for(w=0,i=2i<=Mw=(w+n)%i++)//这个循环计算最后留下的编号规律w
if(w%M+1==K){//由上个循环算出的w计算最后剩下的编号,且若等于K则输出
printf("%d\n",n)
break
}
}
if(n>M)//n>M了说明无解
printf("No Solution!\n")
}
return 0
}
运行举例:
在你给定的基础上 帮你补充完整了 希望有所帮助#include <stdio.h>
void main()
{
char c
int blank, digit, letter, other
int ri, repeat
scanf("%d", &repeat)
getchar()
for(ri=1ri<=repeatri++)
{
blank=digit=letter=other=0//每次统计时,初始化个数为0
while((c=getchar())!='\n') //接收字符串以回车为结束
{
if(c==' ') //统计空格个数
blank++
else if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
letter++ //统计字母个数(包括大写和小写)
else if(c>'0'&&c<'9')
digit++ //统计数字个数
else
other++ //其他字符个数
}
printf("letter = %d, blank = %d, digit = %d, other = %d\n", letter, blank, digit, other)
}
}
在C语言中,整型数据类型包括以下几种:
char:字符型,占1个字节,用于存储字符。
int:整型,占2或4个字节,用于存储整数。
short:短整型,占2个字节,用于存储较小范围的整数。
long:长整型,占4或8个字节,用于存储较大范围的整数。
long long:长长整型,占8个字节,用于存储超大范围的整数。
这些整型数据类型的大小和范围各不相同,程序员需要根据实际情况选择合适的数据类型。