第六十一题:将一个正整数分解质因数。例如:输入90 , 打印出90 = 2 * 3 * 3 * 5 。(1 不是质数,所以1 也不是质因数)
#include <stdio.h>
void main ( )
{
int n, i;
printf ( "\nplease input a number:\n" ) ;
scanf ( "%d" , & n) ;
printf ( "%d=" , n) ;
for ( i= 2 ; i<= n; i++ )
while ( n!= i)
{
if ( n% i== 0 )
{
printf ( "%d*" , i) ;
n= n/ i;
}
else
break ;
}
printf ( "%d" , n) ;
}
第六十二题:/ 求一个3 * 3 的整型矩阵对角线元素之和。
#include "stdio.h"
void main ( )
{
int arr[ 3 ] [ 3 ] ;
int i, j;
int sum= 0 ;
printf ( "please input the arr:\n" ) ;
for ( i= 0 ; i< 3 ; i++ )
for ( j= 0 ; j< 3 ; j++ )
scanf ( "%d" , & arr[ i] [ j] ) ;
for ( i= 0 ; i< 3 ; i++ )
{
for ( j= 0 ; j< 3 ; j++ )
printf ( "%5d" , arr[ i] [ j] ) ;
printf ( "\n" ) ;
}
for ( i= 0 ; i< 3 ; i++ )
for ( j= 0 ; j< 3 ; j++ )
if ( i== j)
sum+ = arr[ i] [ j] ;
printf ( "\n the sum is %d\n" , sum) ;
}
第六十三题:编写程序,将两个字符串连接起来,不用strcat函数。
#include "stdio.h"
void main ( )
{
char str1[ 50 ] , str2[ 50 ] , str[ 50 ] ;
int i= 0 , j= 0 , k= 0 ;
printf ( "输入第一个字符串:\n" ) ;
gets ( str1) ;
printf ( "输入第二个字符串\n" ) ;
gets ( str2) ;
printf ( "str1=%s\n" , str1) ;
printf ( "str2=%s\n" , str2) ;
while ( str1[ i] )
str[ k++ ] = str1[ i++ ] ;
while ( str2[ j] )
str[ k++ ] = str2[ j++ ] ;
str[ k] = str2[ j] ;
printf ( "str=%s" , str) ;
}
第六十四题:从一个三行四列的整型二维数组中查找第一个出现的负数。
#include <stdio.h>
int main ( )
{
int a[ 3 ] [ 4 ] ;
int i, j;
for ( i= 0 ; i< 3 ; i++ )
for ( j= 0 ; j< 4 ; j++ )
scanf ( "%d" , & a[ i] [ j] ) ;
int flag= 1 ;
for ( i= 0 ; i< 3 && flag; i++ )
for ( j= 0 ; j< 4 ; j++ )
if ( a[ i] [ j] < 0 )
{
printf ( "第一个负数是:%d\n" , a[ i] [ j] ) ;
flag= 0 ;
break ;
}
if ( flag)
printf ( "该数组中没有负数\n" ) ;
}
第六十五题:求PI的近似值。
#include "stdio.h"
#include "math.h"
void main ( )
{
double pi, p= 0 , i= 1 , x= 1 ;
int f= 1 ;
while ( fabs ( i) >= 1e-6 )
{
p+ = i;
x+ = 2 ;
f= - f;
i= f/ x;
}
pi= p* 4 ;
printf ( "pi=%f\n" , pi) ;
}
第六十六题:有3 个字符串,要求找出其中最大者。
#include <stdio.h>
#include <string.h>
int main ( )
{
char str[ 3 ] [ 20 ] ;
char string[ 20 ] ;
int i;
for ( i= 0 ; i< 3 ; i++ )
{
gets ( str[ i] ) ;
}
if ( strcmp ( str[ 0 ] , str[ 1 ] ) > 0 )
strcpy ( string, str[ 0 ] ) ;
else
strcpy ( string, str[ 1 ] ) ;
if ( strcmp ( str[ 2 ] , string) > 0 )
strcpy ( string, str[ 2 ] ) ;
printf ( "输入的三个字符串中最大的字符串是%s\n" , string) ;
}
第六十七题:从键盘输入若干行文本,每行以回车结束,以 ctrl+ z 作为输入结束符,统计其行数。
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
int main ( )
{
int c, num= 0 ;
while ( 1 )
{
c= getche ( ) ;
if ( c== 13 )
{
printf ( "\n" ) ;
num++ ;
}
if ( c== 26 )
{
printf ( "\n您输入了 %d 行\n" , ++ num) ;
exit ( 1 ) ;
}
}
}
第六十八题:从键盘输入字符,以 ctrl+ z 结束,统计输入的数字 0 ~9 、空白符和其它字符的个数。
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
int main ( )
{
int counter_num= 0 , counter_space= 0 , counter_other= - 1 ;
char c;
while ( 1 )
{
c= getche ( ) ;
if ( c>= '0' && c<= '9' )
counter_num++ ;
else if ( c== ' ' )
counter_space++ ;
else
counter_other++ ;
if ( c== 26 )
{
printf ( "\n\ncounter_num=%d\tcounter_space=%d\t,counter_other=%d\n" , counter_num, counter_space, counter_other) ;
exit ( 1 ) ;
}
}
}
第六十九题:键盘输入一个字符串(长度不超过20 ,其中不含空格),将其复制一份,复制时将小写字母都转换成为大写字母。
#include <stdio.h>
void main ( )
{
char a[ 20 ] ;
int i;
printf ( "请输入一个由英文字母构成的字符串:\n" ) ;
gets ( a) ;
for ( i= 0 ; i< 20 ; i++ )
if ( a[ i] >= 'a' && a[ i] <= 'z' )
a[ i] - = 32 ;
a[ 20 ] = '\0' ;
puts ( a) ;
}
第七十题:从一个三行四列的整型二维数组中查找第一个出现的负数。
#include <stdio.h>
int main ( )
{
int a[ 3 ] [ 4 ] ;
int i, j;
for ( i= 0 ; i< 3 ; i++ )
for ( j= 0 ; j< 4 ; j++ )
scanf ( "%d" , & a[ i] [ j] ) ;
int flag= 1 ;
for ( i= 0 ; i< 3 && flag; i++ )
for ( j= 0 ; j< 4 ; j++ )
if ( a[ i] [ j] < 0 )
{
printf ( "第一个负数是:%d\n" , a[ i] [ j] ) ;
flag= 0 ;
break ;
}
if ( flag)
printf ( "该数组中没有负数!!!\n" ) ;
}
第七十一题:用while 语句显示1 ~ 10 的平方。
#include "stdio.h"
void main ( )
{
int i= 1 ;
while ( i<= 10 )
{
printf ( "%d*%d=%d\n" , i, i, i* i) ;
i++ ;
}
}
第七十二题:从键盘输入一组数据,以0 结束输入,求数据和。
#include "stdio.h"
void main ( )
{
int sum= 0 ;
int num;
while ( 1 )
{
scanf ( "%d" , & num) ;
if ( num== 0 )
break ;
else
sum+ = num;
}
printf ( "sum=%d\n" , sum) ;
}
第七十三题:输入一个整数,判断它能否被3 、5 、7 整除,并输出以下信息之一:
(1 )能同时被3 、5 、7 整除;
(2 )能被其中两数(要指出哪两个)整除;
(3 )能被其中一个数(要指出哪一个)个整除;
(4 )不能被3 、5 、7 任一个整除。
#include "stdio.h"
void main ( )
{
int num;
printf ( "please input a num:\n" ) ;
scanf ( "%d" , & num) ;
if ( num% 3 == 0 && num% 5 == 0 && num% 7 == 0 )
printf ( "%d可以被3、5、7整除!\n" , num) ;
else if ( num% 3 == 0 && num% 5 == 0 )
printf ( "%d可以被3、5整除!\n" , num) ;
else if ( num% 3 == 0 && num% 7 == 0 )
printf ( "%d可以被3、7整除!\n" , num) ;
else if ( num% 7 == 0 && num% 5 == 0 )
printf ( "%d可以被5、7整除!\n" , num) ;
else if ( num% 3 == 0 )
printf ( "%d可以被3整除!\n" , num) ;
else if ( num% 5 == 0 )
printf ( "%d可以被5整除!\n" , num) ;
else if ( num% 7 == 0 )
printf ( "%d可以被7整除!\n" , num) ;
else
printf ( "%d不可以被3、5、7任何一个数整除!\n" , num) ;
}
第七十四题:输入一个年份, 判断某一年是否闰年。
#include "stdio.h"
void main ( )
{
int year;
printf ( "please input the year:\n" ) ;
scanf ( "%d" , & year) ;
if ( year% 4 == 0 && year% 100 != 0 || year% 400 == 0 )
printf ( "YES!!!\n" ) ;
else
printf ( "NOS!!!\n" ) ;
}
第七十五题:打印如下图形:
#include "stdio.h"
void main ( )
{
int i, j;
for ( i= 1 ; i<= 5 ; i++ )
{
for ( j= 1 ; j<= 6 - i; j++ )
printf ( " " ) ;
for ( j= 1 ; j<= 5 ; j++ )
printf ( "*" ) ;
printf ( "\n" ) ;
}
}
第七十六题:打印如下图形:
#include "stdio.h"
void main ( )
{
int i, j;
for ( i= 1 ; i<= 5 ; i++ )
{
for ( j= 1 ; j<= i; j++ )
printf ( " " ) ;
for ( j= 1 ; j<= 5 ; j++ )
printf ( "*" ) ;
printf ( "\n" ) ;
}
}
第七十七题:
#include "stdio.h"
void main ( )
{
int i, j;
for ( i= 1 ; i<= 6 ; i++ )
{
if ( i% 2 == 0 )
{
for ( j= 1 ; j<= 2 ; j++ )
printf ( " " ) ;
for ( j= 1 ; j<= 6 ; j++ )
printf ( "*" ) ;
printf ( "\n" ) ;
}
else
{
for ( j= 1 ; j<= 6 ; j++ )
printf ( "*" ) ;
printf ( "\n" ) ;
}
}
}
第七十八题:打印下面的图形
#include "stdio.h"
void main ( )
{
int i, j;
for ( i= 1 ; i<= 5 ; i++ )
{
for ( j= 1 ; j<= 2 * i- 1 ; j++ )
printf ( "*" ) ;
printf ( "\n" ) ;
}
}
第七十九题:从键盘上任意输入两位正整数,编程求出个位与十位的乘积且打印输出。
#include "stdio.h"
void main ( )
{
int num;
printf ( "please input the num:\n" ) ;
scanf ( "%d" , & num) ;
printf ( "the result is :%d\n" , ( num% 10 ) * ( num/ 10 ) ) ;
}
第八十题:求方程ax2+ bx+ c= 0 的根,设b2- 4 ac> 0 , a, b, c由键盘输入(列如,输入1 3 2 ,可得x1= - 1.00 ,x2= - 2.00 )
#include <stdio.h>
#include <math.h>
int main ( )
{
float a, b, c, disc, x1, x2, p, q;
disc= 0 ;
scanf ( "%f%f%f" , & a, & b, & c) ;
disc= b* b- 4 * a* c;
p= - b/ ( 2.0 * a) ;
q= sqrt ( disc) / ( 2.0 * a) ;
x1= p+ q;
x2= p- q;
printf ( "x1=%7.2f\nx2=%7.2f\n" , x1, x2) ;
}