输出1到9999中能被7整除,而且至少有一个数字是5的所有数字。输出时一行一个数字,且按由小到大的排序输出。
[提示]判断一个数字中是否有数字5,首先要掌握拆数字的方法,一种算法如下:
一个整数a,使用a,可以得到a的个位数,然后使用a=a/10,可以将a中的个位数字除去,上述过程重复则可以的到原数a中其他位上的数字。 参考程序:
#include \main() { int i, j;
for(i=7; i<=9999; i=i+7) { j=i;
while(j!=0)
{ if(j==5) break; j=j/10; }
if(j!=0) printf(\ } }
[题目 1038:打印图案]
由键盘输入正数n,要求输出中间数字为n的菱形图案。要求菱形左边紧靠屏幕左边。 [第一组自测数据] [键盘输入] 4↙
[正确输出] 1 121 12321 1234321 12321 121 1
[第二组自测数据] [键盘输入] 3↙
[正确输出] 1 121 12321 121 1
参考程序:
# include \ # include \ main()
{ int n,i,j,k,h;
scanf(\
for(i=-n+1;i<=n-1;i++) { for(j=0;j
for(k=1;k<=n-abs(i);k++) printf(\ for(h=n-abs(i)-1;h>=1;h--) printf(\ printf(\ } }
实验 7 数组 一、实验目的
(1)掌握一维数组和二维数组的定义、赋值和输入输出方法。 (2)掌握与数组有关的算法。 二、实验内容
[题目 1039:倒序]
由键盘输入10 个整数,倒序输出。 (数字间由一个空格分隔) [自测数据] [键盘输入]
70 5 14 20 19 2 99 67 13 66↙ [正确输出]
66 13 67 99 2 19 20 14 5 70 参考程序:
#include \ main()
{ int a[10]; int i;
for(i=0;i<10;i++) scanf(\ for(i=9;i>=0;i--) printf(\ }
[题目 1062:打印矩阵]
由键盘输入一个3×4的矩阵,要求输出它的转置矩阵。 [自测数据] [键盘输入] 1 6 9 3 1 1 0 2 1 9 8 9
参考程序: [正确输出] 1 1 1 6 1 9 9 0 8 3 2 9
#include
{ int a[3][4],b[4][3],i,j; for(i=0;i<3;i++) for(j=0;j<4;j++)
{ scanf(\ b[j][i]=a[i][j]; }
for(i=0;i<4;i++) { for(j=0;j<3;j++)
printf(\ printf(\ } }
*[题目 1047:冒泡排序] 由键盘输入10个数,用“冒泡法”对10个数从小到大排序,并按格式要求输出。代码如下,请填充完
整。 数字间由一个空格分隔。 #incude \ main()
{ int a[10], i, j, t; 19 for(i=0;i<10;i++)
scanf(\
for( ___________)
{ for(j=0;j<____;j++) if (___________) {___________} }
for(i=0;i<10;i++) printf(\ }
[自测数据] [键盘输入]
70 5 14 20 19 2 99 67 13 66↙ [正确输出]
2 5 13 14 19 20 66 67 70 99
参考程序:
#include \ main()
{ int a[10]; int i,j,t;
for(i=0;i<10;i++)
scanf(\ for(i=0;i<9;i++)
{ for(j=0;j<9-i;j++) if(a[j]>a[j+1])
{ t=a[j]; a[j]=a[j+1]; a[j+1]=t; } }
for(i=0;i<10;i++) printf(\ }
[题目 1040:统计不同数字个数]
由键盘输入20 个整数,统计不同数字的个数。 [自测数据] [键盘输入]
70 5 14 22 19 2 99 67 13 66 39 22 33 11↙ [正确输出]
5 93 44 38 22 11 16
[提示]上述答案中,因为5有1个重复数字,11有 1个重复数字,22 有 2个重复数字,故不同数字有 16
个,分别是70 5 14 22 19 2 99 67 13 66 93 44 38 11 39 33 18
参考程序:
#include\ main()
{ int a[20]; int i,t,p=0;
for(i=0;i<20;i++)
{ scanf(\ for(t=0;t
if(a[t]==a[i])break; if(t==i) p++; }
printf(\ }
*[题目 1046:计算高精度加法]
由键盘输入两个位数很长的整数(一行一个数,每个数最长不超过 80 位),试计算并输出这两个数 的和。 [自测数据] [键盘输入]
1234567890123456789↙ 987654321098765↙ [正确输出]
1235555544444555554 20 参考程序:
#include \ #include \ main()
{ int a[100]={0},b[100]={0},c[100]={0}; char s[101];