221120数组已完成
1【程序题】
整数升序 。在提示信息10 number:后输入10个整数,编程以升序排列之,并以sorted=A,B,C…I,J的形式输出。注意,输出时最后1个数后无任何符号。下面是程序运行效果:
我的答案:
#include <stdio.h>
void Maopao(int arr[])
{
int Mid;
for (int j = 0;j < 9;j++)
{
for (int i = 0;i < 9;i++)
{
if (arr[i] > arr[i + 1])
{
Mid = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = Mid;
}
}
}
}
int main()
{
int arr[10] = { 0 };
printf("10 numbers:");
for (int i = 0;i <= 9;i++)
{
scanf("%d", &arr[i]);
}
Maopao(arr);
printf("sorted=");
for (int i = 0;i <= 9;i++)
{
printf("%d", arr[i]);
if(i<=8)
printf(",");
}
}
2【程序题】
单词升序 。在提示信息7 word:后输入7个英文单词,编程以升序排列之,并以sorted=A,B,C,D,E,F,G的形式输出。注意,①输出时最后1个单词后无任何符号;②约定单词长度不大于5。下面是程序运行效果:
我的答案:
#include <stdio.h>
#include <string.h>
void Paixu(char str[][6])
{
char str1[6];
int j = 0;
for (int o = 0;o < 6;o++)
{
for (int i = 0;i < 6;i++)
{
j = 0;
while (str[i][j] == str[i + 1][j])
{
j++;
}
if (str[i][j] >= str[i + 1][j])
{
strcpy(str1, str[i]);
strcpy(str[i], str[i + 1]);
strcpy(str[i + 1], str1);
}
}
}
}
int main()
{
char str[7][6] = {0};
printf("7 words:");
for (int i = 0;i <= 6;i++)
{
scanf("%s", str[i]);
}
Paixu(str);
printf("sorted=");
for (int i = 0;i <= 6;i++)
{
printf("%s", str[i]);
if (i < 6)
printf(",");
}
}
3【程序题】
去除重复。将不超过10个整数输入数组后,从头开始逐个扫描数组元素,①一经发现与前面元素中的数相等的数,就将该重复数(数组后面位置的重复数)从数组中“清除”,再将后续的数组元素逐个前移一位;②将重复数全部清除后,以no-repetition=A,B,…的形式从头至尾输出数组中剩余的数。注意,输出时最后1个数后无任何符号。下面是程序的运行效果:
我的答案:
#include <stdio.h>
#include <string.h>
int Panduan(int m,int str[],int i)
{
for (int j = 0;j < i;j++)
{
if (m == str[j])
return 0;
}
return 1;
}
int main()
{
int str[11] = {0};
int i;
printf("10 numbers:");
int o = 0;
for (i = 0;i <= 9;i++)
{
scanf("%d", &str[o]);
if (Panduan(str[o],str,o) == 0)
o = o - 1;
if (Panduan(str[o], str, o) == 0 && i == 9)
{
o = o - 2;
}
o++;
}
str[o] = 9999696l;
printf("no-repetition=");
i = 0;
int count = 0;
while (str[i] != 9999696l)
{
/*printf("%d", str[i]);*/
i++;count++;
/*printf(",");*/
}
i = 0;
while (str[i] != 9999696l)
{
printf("%d", str[i]);
i++;
if(i<count)
printf(",");
}
}//哈哈哈哈哈这也能过我也没想到
4【程序题】
矩阵乘法。编程实现2×3矩阵A乘以3×2矩阵B,其结果是2×2矩阵AB。要求:①在提示符matrixA:后的新一行开始,输入2行,每行3个整数;②在提示符matrixB:后的新一行开始,输入3行,每行2个整数;③程序计算矩阵A与矩阵B的乘积AB,并以matrixAB:后新一行开始的2行、每行2个整数的形式输出乘积AB。注意,输出时最后1个数后无任何符号。下面是程序的运行效果:
我的答案:
#include <stdio.h>
#include <string.h>
int main()
{
int arr[2][3] = { 0 };
int arr1[3][2] = { 0 };
int result[2][2];
printf("matrixA:\n");
for (int i = 0;i < 2;i++)
{
scanf("%d %d %d", &arr[i][0],&arr[i][1], &arr[i][2]);
}
printf("matrixB:\n");
for (int i = 0;i < 3;i++)
{
scanf("%d %d", &arr1[i][0], &arr1[i][1]);
}
result[0][0] = arr[0][0] * arr1[0][0] + arr[0][1] * arr1[1][0] + arr[0][2] * arr1[2][0];
result[0][1] = arr[0][0] * arr1[0][1] + arr[0][1] * arr1[1][1] + arr[0][2] * arr1[2][1];
result[1][0] = arr[1][0] * arr1[0][0] + arr[1][1] * arr1[1][0] + arr[1][2] * arr1[2][0];
result[1][1] = arr[1][0] * arr1[0][1] + arr[1][1] * arr1[1][1] + arr[1][2] * arr1[2][1];
printf("matrixAB:\n");
for (int i = 0;i < 2;i++)
{
printf("%d,%d", result[i][0], result[i][1]);
if(i<1) printf("\n");
}
}
5【程序题】
统计单词个数。输入一行字符,统计其中有多少个单词,单词之间用空格分隔。 要求:①在提示符string:后输入一个字符串,以回车结束;②假设单词只以空格作为分隔符,程序统计这个字符串中的单词数A,然后以words=A的形式输出。下面是程序的运行效果:
我的答案:
#include <stdio.h>
int main()
{
char put;
printf("string:");
int count = 1;
put = getchar();
while (put != '\n')
{
if (put == ' ')
count++;
put = getchar();
}
printf("words=%d", count);
}
6【程序题】
多项式。一元n次多项式的一般形式如下:
要求:①在n,x:的提示信息后,用户输入n、x的值,n为整数,x为浮点数;②根据n值,程序提示a0,a1,…an:由用户在提示后输入相应的多项式系数,所有系数都是浮点数;③程序根据用户的输入,计算出多项式的值,以f(x)=A.BC的形式输出,输出结果保留2位小数;④输出计算结果后,程序再次提示n,x:等待用户下次输入,直到用户输入的n值小于0为止;⑤当用户输入的n值小于0,程序输出Bye!结束。
注意:为简化程序,约定用户输入的n值小于10。下面是程序的运行效果:
我的答案:
#include <stdio.h>
#include <math.h>
int main()
{
int n;
double x;
double A[9] = {0};
double F=0;
int j;
do
{
F = 0;
printf("n,x:");
scanf("%d %lf", &n, &x);
if (n < 0)
{
printf("Bye!");
break;
}
for (int i = 0;i <= n;i++)
{
printf("a%d",i);
if (i < n )
printf(",");
}
printf(":");
for (int i = 0;i <= n ;i++)
{
scanf("%lf", &A[i]);
}
j = n;
for (int i = 0;i <= n;i++)
{
F = F + (A[i] * (pow(x, (j - i))));
}
printf("f(x)=%.2lf\n", F);
} while (n >= 0);
}