C语言 城市断电 ACM 求代码或者思路

Python023

C语言 城市断电 ACM 求代码或者思路,第1张

#include "stdio.h"

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个字节,用于存储超大范围的整数。

这些整型数据类型的大小和范围各不相同,程序员需要根据实际情况选择合适的数据类型。