实验题目1:
将一个数的数码倒过来所得的心数叫做反序数,如果一个数等于他的反序数则称它为对称数,编程求不超过2000的反序数。
设计思想:回文数吗
实验代码及注释:
#include<stdio.h>
int fan(int i)
{
int j = 0;
while (i / 1 != 0)
{
j = j * 10 + i % 10;
i /= 10;
}
return j;
}
int main()
{
for (int i = 1; i <= 2000; i++)
{
if (i == fan(i))
{
printf("%d\n", i);
}
}
return 0;
}
验证与结论:应该吧
总结与心得体会:不懂
实验题目2:
请编写程序,判断一个书是否是回文,若是回文,则返回值为1,若不是回文,则返回值为0。
设计思想:跟上面一样
实验代码及注释:
#include<stdio.h>
int fan(int i)
{
int j = 0;
while (i / 1 != 0)
{
j = j * 10 + i % 10;
i /= 10;
}
return j;
}
int main()
{
int i = 0;
scanf("%d", &i);
if (i == fan(i))
{
return 1;
}
else
{
return 0;
}
}
验证与结论:欧克
总结与心得体会:easy
实验题目3:
分别用行指针和指向元素的指针求整形二维数组中的最大元素及其所在的行数和列数。
设计思想:先找到最大值,然后再找
实验代码及注释:
#include<stdio.h>
int main()
{
int arr[100][100] = { 0 };
int row = 0, cow = 0;
printf("请输入行数:\n");
scanf("%d", &row);
printf("请输入列数:\n");
scanf("%d", &cow);
for (int i = 0; i < row;i++)
{
for (int j = 0; j < cow; j++)
{
scanf("%d", &arr[i][j]);
}
}
int(*p1)[100] = arr;
int max = *(*(p1));
int row1[100] = { 0 };
int n = 0;
int cow1[100] = { 0 };
for (int i = 0; i < row; i++)
{
for (int j = 0; j < cow; j++)
{
if (max < *(*(p1 + i) + j))
{
max = *(*(p1 + i) + j);
}
}
}
for (int i = 0; i < row; i++)
{
for (int j = 0; j < cow; j++)
{
if (max== *(*(p1 + i) + j))
{
row1[n] = i + 1;
cow1[n] = j + 1;
n++;
}
}
}
printf("最大值:%d\n", max);
for (int j = 0; j < n; j++)
{
printf("在第 % d行, % d列\n", row1[j], cow1[j]);
}
return 0;
}
验证与结论:人工检验通过
总结与心得体会:会有好几个最大值
实验题目4:
编写程序输入5个单词,将他们按照从小到大的顺序排序后输出
设计思想:不懂什么叫单词的大小,那就用strcmp吧
实验代码及注释:
#include<stdio.h>
#include<string.h>
int main()
{
char arr[5][100] = {"0"};
for (int i = 0; i < 5; i++)
{
scanf("%s", &arr[i]);
}
for (int i = 0; i < 4; i++)
{
for (int j = i + 1; j < 5; j++)
{
if (strcmp(arr[i],arr[j])>0)
{
for (int m = 0; m < 100; m++)
{
arr[i][m] = arr[i][m] ^ arr[j][m];
arr[j][m] = arr[i][m] ^ arr[j][m];
arr[i][m] = arr[i][m] ^ arr[j][m];
}
}
}
}
for (int i = 0; i < 5; i++)
{
printf("%s\n", arr[i]);
}
return 0;
}
验证与结论:人工检验通过
总结与心得体会:strcmp(str1,str2),按顺序一个一个比各个位置字母的大小
实验题目5:
输入一个三位数,计算该数各位上的数字之和,如果在1到12之间,则输出与数和相对应的月份的英文名称,否则输出***
设计思想:通过a/100将三位数的百位数字分离出来,在通过a-b*100/10,将十位数字分离出来,再通过三位数a对10取余,将个位数字分离出来,再将各个数字相加求和。
设计思想:nonono不用这样
实验代码及注释:
#include<stdio.h>
int main()
{
int a = 0;
int b = 0;
scanf("%d", &a);
while (a / 1 != 0)
{
b += a % 10;
a /= 10;
}
if (b ==1)
{
printf("January\n");
}
else if (b == 2)
{
printf("Fabraury\n");
}
else if (b == 3)
{
printf("March\n");
}
else if (b == 4)
{
printf("April\n");
}
else if (b == 5)
{
printf("May\n");
}
else if (b == 6)
{
printf("June\n");
}
else if (b == 7)
{
printf("Jule\n");
}
else if (b == 8)
{
printf("August\n");
}
else if (b == 9)
{
printf("September\n");
}
else if (b == 10)
{
printf("October\n");
}
else if (b == 11)
{
printf("November\n");
}
else if (b == 12)
{
printf("December\n");
}
else
{
printf("***\n");
}
return 0;
}
验证与结论:欧克
总结与心得体会:额,这样不太好吧