编程求一个四位自然数 ABCD ,它乘以 A 后变成 DCBA 。
方法一
#include <stdio.h>
int main(){
int ABCD = 0;
int DCBA = 0;
int A = 1;
int B = 0;
int C = 0;
int D = 0;
ABCD=1000;
do {
ABCD++;
A = ABCD / 1000;
B = ABCD / 100 - A * 10;
C = ABCD / 10 - A * 100 - B * 10;
D = ABCD - A * 1000 - B * 100 -C * 10;
DCBA = D * 1000 + C * 100 + B *10 + A;
if ( DCBA == ( ABCD * A ))
{
printf ( "The Number is %d\n" ,ABCD);
}
} while (ABCD<10000);
return 0;
}
___________________________________________________________-
方法二
#include <stdio.h>
int main(){
int ABCD = 0;
int DCBA = 0;
int A = 1;
int B = 0;
int C = 0;
int D = 0;
ABCD=1000;
for (ABCD = 1000;ABCD < 10000; ABCD++) {
A = ABCD / 1000;
B = ABCD / 100 - A * 10;
C = ABCD / 10 - A * 100 - B * 10;
D = ABCD - A * 1000 - B * 100 - C * 10;
DCBA = D * 1000 + C * 100 + B *10 + A;
if ( DCBA == ( ABCD * A ))
{
printf ( "The Number is %d\n" ,ABCD);
}
}
_ return 0;
}
_________________________________________________________________
方法三
#include <stdio.h>
int main(){
int ABCD = 0;
int DCBA = 0;
int A = 1;
int B = 0;
int C = 0;
int D = 0;
ABCD=1000;
while (ABCD<10000){
ABCD++;
A = ABCD / 1000;
B= ABCD / 100 - A * 10;
C= ABCD / 10 - A * 100 - B * 10;
D = ABCD - A * 1000 - B * 100 - C * 10;
DCBA = D * 1000 + C * 100 + B * 10 + A;
if ( DCBA == ( ABCD * A ))
{
printf ( "The Number is %d\n" ,ABCD);
}
}
return 0;
}
4.2.1 任务描述
编写一个程序,从键盘上接收一个整数,并且从 1-100 之间找到能被它整除的整数,并输出找到的整数。
#include <stdio.h>
int main(){
int a;
int i=1;
printf ( " 请输入一个值 " );
fflush (stdout);
scanf ( "%d" ,&a);
for (;i<=100;i++){
if (a%i==0){
printf ( " 能被整除的数是 :%d\n" ,i);
}
}
return 0;
}
4.3.1 任务描述
模拟 XX 银行输入密码的操作,在程序开始时提示用户输入密码,如果密码输入不正确(可以事先自己随意确定一个密码,如果输入不是这个密码,就认为是错误的),则要求用户重新进行输入;如果输入正确,可以直接输出“密码输入正确 , 请选择其他操作 . ”即可,然后程序结束。如果用户连续三次输入错误,程序也将结束,可以提示用户“密码输入有误超过 3 次 , 您的帐户已经被冻结 , 请明天再输入 . ”
#include <stdio.h>
int main(){
int a=0,i=1;
printf ( " 请输入密码:: " );
fflush (stdout);
while (i<=3)
{
scanf ( "%d" ,&a);
if (a!=121212)
{
printf ( " 密码错误,请重新输入 !\n" );
fflush (stdout);
i++;
}
else {
printf ( " 密码正确请继续操作! \n" );
return 1;
}
}
printf ( " 密码输入有误超过 3 次 , 您的帐户已经被冻结 , 请明天再输入 \n" );
return 0;
}
4.4.1 任务描述
使用循环语句实现下面的图形:
*****
****
***
**
*
#include <stdio.h>
int main(){
int b;
for ( b=5;b>=1;b--){
int a=0;
for (a=0;a<b;a++){
printf ( "*" );
}
printf ( "\n" );
}
return 0;
5.1.1 作业任务
使用循环语句输出一个以 * 号组成的菱形。要求行数从键盘接收。
#include <stdio.h>
int main() {
printf ( " 请输入行数 :\n" );
fflush (stdout);
int i, j, n;
scanf ( "%d" , &n);
for (i = 1; i <= n; i++) {
for (j = n - i; j > 0; j--)
printf ( "" );
for (j = 1; j<= 2 * i - 1; j++)
printf ( "*" );
printf ( "\n" );
}
for (i = 1; i< n; i++) {
for (j = 0; j< i; j++)
printf ( "" );
for (j = 2 *(n - i) - 1; j > 0; j--)
printf ( "*" );
printf ( "\n" );
}
return 0;
}
5.2.1 作业任务
编写一个程序,它能够读入一个正方形的边长,然后输出一个由星号和空格组成的边长为刚刚读入的边长的空心正方形。例如,程序读入的边长是 5 ,那么它应输出边长为 5 的空心正方形。
#include <stdio.h>
int main(){
printf ( " 输入一个正方形的边长 :" );
fflush (stdout);
int i, j, a;
scanf ( "%d" , &a);
for (i = 0; i < a; i++) {
printf ( "*" );
}
printf ( "\n" );
for (i = 0; i < a - 2; i++) {
printf ( "*" );
for (j = 0; j < a - 2; j++) {
printf ( "" ); }
printf ( "*\n" ); }
for (i = 0; i< a; i++) {
printf ( "*" );
}
printf ( "\n" );
return 0;
}
5.3.1 作业任务
设计一个程序,该程序能将一个十进制整数,输出将其转化为二进制数以后有多少个 1. 例如 3 转化为二进制是 11 ,有两个 1 ,就输出 2 ; 5 转化为二进制是 101 ,也输出 2.
#include <stdio.h>
int main()
{ int a, i = 0, j, k = 0;
int b[30];
printf ( " 请输入一个十进制整数 :\n" );
fflush (stdout);
scanf ( "%d" , &a);
while (a != 0)
{b[i] = a % 2; a /= 2; i++; }
printf ( "1 的个数 :\n" );
for (j = 0; j < i; j++){{
// 计算 1 的个数
if (b[j] == 1)
k++;}}
printf ( "%d" , k);
return 0;
}
5.4.1 作业任务
有一条长阶梯,若每步跨 2 阶最后剩下 1 阶;若每步跨 3 阶最后剩下 2 阶;若每步跨 5 阶最后剩下 4 阶;若每步跨 6 阶最后剩下 5 阶;只有每步跨 7 阶,最后才正好 1 阶不剩。编程计算这条阶梯共有多少阶?
方法一
#include <stdio.h>
int main(){
int i;
for (i=1;i>0;i++){
if ((i%2==1) && (i%3==2) && (i%5==4) && (i%6==5)&& (i%7==0)){
printf ( " 总台阶数是; %d\n" ,i);
} else {
i++;
}
}
return 0;
}
_______________________________________________________________________-
方法二
#include <stdio.h>
int main() {
int n=1;
while (!((n%2==1)&&(n%3==2)&&(n%5==4)&&(n%6==5)&&(n%7==0))){
++n;
}
printf ( " 这条阶梯共有 %d 阶。 " ,n);
return 0;
}