L1-003 个位数统计
# include <stdio.h>
int main ( ) {
char s[ 1001 ] ;
scanf ( "%s" , & s) ;
int a[ 10 ] = { 0 } , count= 0 ;
for ( int i= 0 ; s[ i] != '\0' ; i++ ) {
int x= s[ i] - '0' ;
switch ( x) {
case 0 :
a[ 0 ] ++ ; break ;
case 1 :
a[ 1 ] ++ ; break ;
case 2 :
a[ 2 ] ++ ; break ;
case 3 :
a[ 3 ] ++ ; break ;
case 4 :
a[ 4 ] ++ ; break ;
case 5 :
a[ 5 ] ++ ; break ;
case 6 :
a[ 6 ] ++ ; break ;
case 7 :
a[ 7 ] ++ ; break ;
case 8 :
a[ 8 ] ++ ; break ;
case 9 :
a[ 9 ] ++ ; break ;
}
}
for ( int i= 0 ; i< 10 ; i++ )
if ( a[ i] != 0 ) count++ ;
for ( int i= 0 ; i< 10 ; i++ ) {
if ( a[ i] != 0 ) {
printf ( "%d:%d" , i, a[ i] ) ;
count-- ;
if ( count!= 0 ) printf ( "\n" ) ;
}
}
return 0 ;
}
L1-005 考试座位号
# include <stdio.h>
# define A 1000
struct Stu {
char a[ 17 ] ;
int x, y;
} ;
int main ( ) {
int N;
scanf ( "%d" , & N) ;
struct Stu stu[ A] ;
for ( int i= 0 ; i< N; i++ )
scanf ( "%s %d %d" , & stu[ i] . a, & stu[ i] . x, & stu[ i] . y) ;
int M, m[ A] ;
scanf ( "%d" , & M) ;
for ( int i= 0 ; i< M; i++ )
scanf ( "%d" , & m[ i] ) ;
for ( int i= 0 ; i< M; i++ ) {
for ( int j= 0 ; j< N; j++ ) {
if ( stu[ j] . x== m[ i] )
printf ( "%s %d" , stu[ j] . a, stu[ j] . y) ;
}
if ( i!= M- 1 ) printf ( "\n" ) ;
}
return 0 ;
}
L1-015 跟奥巴马画方块
# include <stdio.h>
float round ( float x) {
int a= ( int ) x;
float b= x- a;
if ( b< 0.5 ) return x;
else return x+ 1 ;
}
int main ( ) {
float N;
char c;
scanf ( "%f %c" , & N, & c) ;
float x= N/ 2 ;
int n= round ( x) ;
for ( int i= 0 ; i< n; i++ ) {
for ( int j= 0 ; j< N; j++ )
printf ( "%c" , c) ;
if ( i!= n- 1 ) printf ( "\n" ) ;
}
return 0 ;
}
L1-016 查验身份证
# include <stdio.h>
# include <string.h>
# define N 101
int digit ( char x[ ] ) {
for ( int i= 0 ; i< 17 ; i++ ) {
if ( x[ i] < '0' || x[ i] > '9' ) return 0 ;
}
return 1 ;
}
int main ( ) {
int n, count= 0 ;
scanf ( "%d" , & n) ;
char id[ N] [ 19 ] ;
int k= 0 ;
for ( int i= 0 ; i< n; i++ )
scanf ( "%s" , & id[ i] ) ;
int q[ 17 ] = { 7 , 9 , 10 , 5 , 8 , 4 , 2 , 1 , 6 , 3 , 7 , 9 , 10 , 5 , 8 , 4 , 2 } ;
char m[ 11 ] = { '1' , '0' , 'X' , '9' , '8' , '7' , '6' , '5' , '4' , '3' , '2' } ;
for ( int i= 0 ; i< n; i++ ) {
int num, sum= 0 , mod, flag= 0 ;
if ( digit ( id[ i] ) == 1 ) {
for ( int j= 0 ; j< 17 ; j++ ) {
num= id[ i] [ j] - '0' ;
num*= q[ j] ;
sum+= num;
}
mod= sum% 11 ;
if ( m[ mod] == id[ i] [ 17 ] ) flag= 1 ;
}
if ( flag== 1 ) count++ ;
else printf ( "%s\n" , id[ i] ) ;
}
if ( count== n) printf ( "All passed" ) ;
return 0 ;
}
L1-017 到底有多二
# include <stdio.h>
# include <string.h>
# define N 50
int main ( ) {
char s[ N] ;
scanf ( "%s" , & s) ;
int len= strlen ( s) ;
float x= 0 , y= 0 , z;
for ( int i= 0 ; i<= len- 1 ; i++ ) {
if ( s[ i] != '-' ) {
y++ ;
if ( s[ i] == '2' ) x++ ;
}
}
z= x/ y;
if ( s[ 0 ] == '-' ) z*= 1.5 ;
if ( s[ len- 1 ] % 2 == 0 ) z*= 2 ;
printf ( "%.2f%%" , 100 * z) ;
return 0 ;
}
L1-019 谁先倒
# include <stdio.h>
# define A 101
int main ( ) {
int a, b;
int N;
int j1[ A] , j2[ A] , y1[ A] , y2[ A] ;
int j= 0 , y= 0 ;
scanf ( "%d %d" , & a, & b) ;
scanf ( "%d" , & N) ;
for ( int i= 0 ; i< N; i++ )
scanf ( "%d %d %d %d" , & j1[ i] , & j2[ i] , & y1[ i] , & y2[ i] ) ;
for ( int i= 0 ; i< N; i++ ) {
if ( j2[ i] == ( j1[ i] + y1[ i] ) && y2[ i] != ( j1[ i] + y1[ i] ) ) j++ ;
else if ( ( y2[ i] == ( j1[ i] + y1[ i] ) ) && ( j2[ i] != ( j1[ i] + y1[ i] ) ) ) y++ ;
else if ( j2[ i] == ( j1[ i] + y1[ i] ) && y2[ i] == ( j1[ i] + y1[ i] ) ) continue ;
if ( j> a|| y> b) break ;
}
if ( j> a) printf ( "A\n%d" , y) ;
else if ( y> b) printf ( "B\n%d" , j) ;
return 0 ;
}
L1-025 正整数A+B
# include <stdio.h>
# include <string.h>
# include <stdlib.h>
int digit ( int x) {
if ( x>= 1 && x<= 1000 ) return 1 ;
else return 0 ;
}
int numa ( char s[ ] ) {
int len= strlen ( s) ;
for ( int i= 0 ; i< len; i++ )
if ( s[ i] == '.' ) return 0 ;
return 1 ;
}
int numb ( char s[ ] ) {
int len= strlen ( s) ;
for ( int i= 0 ; i< len; i++ )
if ( s[ i] == '.' || s[ i] == ' ' ) return 0 ;
return 1 ;
}
int main ( ) {
char a[ 1001 ] , b[ 1001 ] ;
int x, y, sum;
for ( int i= 0 ; i< 5 ; i++ ) {
a[ i] = getchar ( ) ;
if ( a[ i] == ' ' ) break ;
}
for ( int i= 0 ; i< 5 ; i++ ) {
b[ i] = getchar ( ) ;
if ( b[ i] == '\n' ) break ;
}
x= atoi ( a) , y= atoi ( b) ;
if ( digit ( x) == 1 && digit ( y) == 1 ) {
if ( numa ( a) == 1 && numb ( b) == 1 ) {
printf ( "%d + %d = %d" , x, y, x+ y) ;
}
else if ( numa ( a) == 1 && numb ( b) == 0 ) printf ( "%d + ? = ?" , x) ;
else if ( numa ( a) == 0 && numb ( b) == 1 ) printf ( "? + %d = ?" , y) ;
else if ( numa ( a) == 0 && numb ( b) == 0 ) printf ( "? + ? = ?" ) ;
}
else if ( digit ( x) == 1 && digit ( y) == 0 ) printf ( "%d + ? = ?" , x) ;
else if ( digit ( x) == 0 && digit ( y) == 1 ) printf ( "? + %d = ?" , y) ;
else if ( digit ( x) == 0 && digit ( y) == 0 ) printf ( "? + ? = ?" ) ;
return 0 ;
}
L1-030 一帮一
# include <stdio.h>
# define A 50
int main ( ) {
int N;
scanf ( "%d" , & N) ;
int gender[ A] ;
char name[ A] [ 9 ] ;
for ( int i= 0 ; i< N; i++ )
scanf ( "%d %s" , & gender[ i] , & name[ i] ) ;
for ( int i= 0 ; i< N/ 2 ; i++ ) {
for ( int j= N- 1 ; j> 0 ; j-- ) {
if ( gender[ j] != gender[ i] && gender[ i] != - 1 && gender[ j] != - 1 ) {
printf ( "%s %s\n" , name[ i] , name[ j] ) ;
gender[ i] = - 1 , gender[ j] = - 1 ;
break ;
}
}
}
return 0 ;
}
L1-035 情人节
# include <stdio.h>
# define A 1000
int main ( ) {
char name[ A] [ 11 ] ;
int len;
for ( len= 0 ; ; len++ ) {
scanf ( "%s" , & name[ len] ) ;
if ( name[ len] [ 0 ] == '.' ) break ;
}
if ( len>= 14 ) printf ( "%s and %s are inviting you to dinner..." , name[ 1 ] , name[ 13 ] ) ;
else if ( len>= 2 && len< 14 ) printf ( "%s is the only one for you..." , name[ 1 ] ) ;
else if ( len< 2 ) printf ( "Momo... No one is for you ..." ) ;
return 0 ;
}
L1-044 稳赢
# include <stdio.h>
# define A 10000
int main ( ) {
int K, k= 0 ;
scanf ( "%d" , & K) ;
char a[ A] [ 8 ] , b[ A] [ 8 ] ;
int len;
for ( len= 0 ; ; len++ ) {
scanf ( "%s" , & a[ len] ) ;
if ( a[ len] [ 0 ] == 'E' ) break ;
}
int x;
for ( int i= 0 ; i< len; i++ ) {
if ( a[ i] [ 0 ] == 'C' ) x= 0 ;
else if ( a[ i] [ 0 ] == 'J' ) x= 1 ;
else if ( a[ i] [ 0 ] == 'B' ) x= 2 ;
if ( k!= K) {
switch ( x) {
case 0 :
printf ( "Bu\n" ) ; k++ ; break ;
case 1 :
printf ( "ChuiZi\n" ) ; k++ ; break ;
case 2 :
printf ( "JianDao\n" ) ; k++ ; break ;
}
}
else {
switch ( x) {
case 0 :
printf ( "ChuiZi\n" ) ; k= 0 ; break ;
case 1 :
printf ( "JianDao\n" ) ; k= 0 ; break ;
case 2 :
printf ( "Bu\n" ) ; k= 0 ; break ;
}
}
}
return 0 ;
}
L1-048 矩阵A乘以B
# include <stdio.h>
# define A 100
int main ( ) {
int Ra, Ca, Rb, Cb;
int a[ A] [ 100 ] , b[ A] [ 100 ] , c[ A] [ 100 ] = { 0 } ;
scanf ( "%d %d" , & Ra, & Ca) ;
for ( int i= 0 ; i< Ra; i++ ) {
for ( int j= 0 ; j< Ca; j++ )
scanf ( "%d" , & a[ i] [ j] ) ;
}
scanf ( "%d %d" , & Rb, & Cb) ;
for ( int i= 0 ; i< Rb; i++ ) {
for ( int j= 0 ; j< Cb; j++ )
scanf ( "%d" , & b[ i] [ j] ) ;
}
if ( Ca== Rb) {
printf ( "%d %d\n" , Ra, Cb) ;
for ( int i= 0 ; i< Ra; i++ ) {
for ( int j= 0 ; j< Cb; j++ ) {
for ( int k= 0 ; k< Ca; k++ )
c[ i] [ j] += a[ i] [ k] * b[ k] [ j] ;
}
}
for ( int i= 0 ; i< Ra; i++ ) {
for ( int j= 0 ; j< Cb; j++ ) {
if ( j!= Cb- 1 ) printf ( "%d " , c[ i] [ j] ) ;
else printf ( "%d\n" , c[ i] [ j] ) ;
}
}
}
else printf ( "Error: %d != %d" , Ca, Rb) ;
return 0 ;
}
L1-058 6翻了
# include <stdio.h>
# include <string.h>
int main ( ) {
char s[ 1001 ] ;
gets ( s) ;
int count= 0 , flag= 0 , len= strlen ( s) ;
for ( int i= 0 ; i<= len; i++ ) {
if ( s[ i] == '6' )
count++ , flag= 1 ;
if ( s[ i] != '6' && flag== 1 ) {
if ( count<= 3 )
for ( int j= 0 ; j< count; j++ )
printf ( "6" ) ;
else if ( count> 3 && count<= 9 ) printf ( "9" ) ;
else if ( count> 9 ) printf ( "27" ) ;
count= 0 , flag= 0 ;
}
if ( s[ i] != '6' && flag== 0 )
printf ( "%c" , s[ i] ) ;
}
return 0 ;
}
L1-062 幸运彩票
# include <stdio.h>
# define A 100
int main ( ) {
int N;
char s[ A] [ 7 ] ;
scanf ( "%d" , & N) ;
for ( int i= 0 ; i< N; i++ )
scanf ( "%s" , & s[ i] ) ;
int sum1, sum2;
for ( int i= 0 ; i< N; i++ ) {
sum1= 0 , sum2= 0 ;
for ( int j= 0 ; j< 6 ; j++ ) {
int x= s[ i] [ j] - '0' ;
if ( j<= 2 ) sum1+= x;
else if ( j> 2 ) sum2+= x;
}
if ( sum1== sum2) printf ( "You are lucky!\n" ) ;
else printf ( "Wish you good luck.\n" ) ;
}
return 0 ;
}
L1-069 胎压监测
# include <stdio.h>
# include <math.h>
int maxnum ( int a[ ] ) {
int max= a[ 0 ] ;
for ( int i= 0 ; i< 4 ; i++ )
if ( a[ i] > max) max= a[ i] ;
return max;
}
int main ( ) {
int tyre[ 4 ] , mintyre, threshold;
scanf ( "%d %d %d %d %d %d" , & tyre[ 0 ] , & tyre[ 1 ] , & tyre[ 2 ] , & tyre[ 3 ] , & mintyre, & threshold) ;
int error[ 4 ] = { 0 } ;
int flag[ 4 ] = { 1 , 1 , 1 , 1 } , count= 0 ;
int max= maxnum ( tyre) ;
for ( int i= 0 ; i< 4 ; i++ ) {
error[ i] = abs ( max- tyre[ i] ) ;
if ( error[ i] > threshold|| tyre[ i] < mintyre)
flag[ i] = 0 ;
}
int flag1= 1 ;
for ( int i= 0 ; i< 4 ; i++ ) {
if ( flag[ i] == 0 )
flag1= 0 , count++ ;
}
if ( flag1== 1 ) printf ( "Normal" ) ;
else {
if ( count>= 2 ) printf ( "Warning: please check all the tires!" ) ;
else {
for ( int i= 0 ; i< 4 ; i++ )
if ( flag[ i] == 0 ) printf ( "Warning: please check #%d!" , i+ 1 ) ;
}
}
return 0 ;
}
L1-070 吃火锅
# include <stdio.h>
# include <string.h>
# define A 100
int isin ( char s[ ] , char c[ ] ) {
int i= 0 , j= 0 ;
while ( i< strlen ( s) && j< strlen ( c) ) {
if ( s[ i] == c[ j] ) i++ , j++ ;
else {
i= i- j+ 1 ;
j= 0 ;
}
if ( j== strlen ( c) ) return 1 ;
}
return 0 ;
}
int main ( ) {
char s[ A] , h[ 15 ] = "chi1 huo3 guo1" ;
int n= 0 , m, count= 0 ;
while ( gets ( s) ) {
if ( s[ 0 ] == '.' && strlen ( s) == 1 ) break ;
else {
n++ ;
if ( isin ( s, h) == 1 ) {
count++ ;
if ( count== 1 ) m= n;
}
}
}
printf ( "%d\n" , n) ;
if ( count== 0 ) printf ( "-_-#" ) ;
else printf ( "%d %d" , m, count) ;
return 0 ;
}
L1-077 大笨钟的心情
# include <stdio.h>
int main ( ) {
int mood[ 24 ] , time;
for ( int i= 0 ; i< 24 ; i++ )
scanf ( "%d" , & mood[ i] ) ;
while ( scanf ( "%d" , & time) ) {
if ( time< 0 || time> 23 ) break ;
else {
if ( mood[ time] > 50 ) printf ( "%d Yes\n" , mood[ time] ) ;
else printf ( "%d No\n" , mood[ time] ) ;
}
}
return 0 ;
}
L1-078 吉老师的回归
# include <stdio.h>
# include <string.h>
# define A 30
int isin ( char s[ ] , char c[ ] ) {
int i= 0 , j= 0 ;
while ( i< strlen ( s) && j< strlen ( c) ) {
if ( s[ i] == c[ j] )
i++ , j++ ;
else i= i- j+ 1 , j= 0 ;
if ( j== strlen ( c) ) return 1 ;
}
return 0 ;
}
int main ( ) {
int N, M;
scanf ( "%d %d" , & N, & M) ;
char test1[ A] [ 501 ] , test2[ A] [ 501 ] , qd[ 8 ] = { "qiandao" } , easy[ 5 ] = { "easy" } ;
int t= - 1 ;
getchar ( ) ;
for ( int i= 0 ; i< N; i++ ) {
gets ( test1[ i] ) ;
strcpy ( test2[ i] , test1[ i] ) ;
}
for ( int i= 0 ; i< N; i++ )
if ( isin ( test1[ i] , qd) == 0 && isin ( test1[ i] , easy) == 0 ) test1[ i] [ 0 ] = '1' ;
int count= 0 ;
for ( int i= 0 ; i< N; i++ ) {
if ( test1[ i] [ 0 ] == '1' && count< M) count++ ;
else if ( count== M) {
count= i;
break ;
}
}
if ( count< M) printf ( "Wo AK le" ) ;
else {
for ( int i= count; i< N; i++ )
if ( test1[ i] [ 0 ] == '1' ) {
t= i;
break ;
}
if ( t!= - 1 ) printf ( "%s" , test2[ t] ) ;
else printf ( "Wo AK le" ) ;
}
return 0 ;
}