问题1:输入弧度(正数)求正弦值、余弦值。当给定弧度小于2*PI时直接使用sin(x),cos(x)计算;当给定弧度大于2*PI时,转换到0--2*PI范围内求值。
#include<stdio.h>
#include<math.h>
#define PI 3.14
int main()
{
float x;
scanf("%f", &x);
if (x <= 2 * PI)
{
printf("%f的正弦值为:%f", x, sin(x));
printf("%f的余弦值为:%f", x, cos(x));
}
else
{
while (x > 2 * PI)
x = x - 2 * PI;
printf("%f的正弦值为:%f", x, sin(x));
printf("%f的余弦值为:%f", x, cos(x));
}
}
问题二:打车问题,输入路程值求应收费用。3km以内7元,大于3km小于5km大于3km的部分按照每公里1.2元收费,大于5km时,大于5km的部分按照1.8元没公里收费。
#include<stdio.h>
int main()
{
int s;
float sum;
scanf("%d", &s);
if (s <= 3)
sum = 7;
else if (s > 3 && s <= 5)
sum = 7 + (s - 3) * 1.2;
else
sum = 7 + 2.4 + (s - 5) * 1.8;
printf("应收费%.2f元", sum);
}
问题3:输出1-100每个数的平方根,每5个一行,保留小数点后4位。
#include<stdio.h>
#include<math.h>
int main()
{
float x;
for (int i = 1; i < 101; i++)
{
x = sqrt(i);
printf("%.4f ", x);
if (i % 5 == 0)
printf("\n");
}
}
问题4:计算形如
2+22+222+2222+22222的结果,分别输入a和n,a代表数字,n代表加的个数。
#include<stdio.h>
int main()
{
int a, n;
scanf("%d %d", &a, &n);
int sum = 0;
int temp = 0;
for (int i = 0; i < n; i++)
{
temp = a + temp * 10;
sum += temp;
printf("%d+", temp);
}
printf("=%d", sum);
}
问题五:给定一个数组,将数组对称交换,输出原数组和交换后的数组。
#include<stdio.h>
int main()
{
int a[100], b[100];
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
for (int j = 0; j < n; j++)
{
b[n - j - 1] = a[j];
}
printf("原数组为:");
for (int i = 0; i < n; i++)
{
printf("%d", a[i]);
}
printf("\n");
printf("交换后的数组为:");
for (int i = 0; i < n; i++)
{
printf("%d", b[i]);
}
}
问题六:定义一个数组存放20本书的信息,书的信息包括书名、作者名、出版社、价格。给出一个要查找的书名,对数组进行查询,如果查询到结果将书的信息输出,否则输出不存在此记录。
#include<stdio.h>
#include<string.h>
#define N 3
struct bookstore
{
char name[20];
char writer[20];
char chupanshe[50];
int price;
};
void input(struct bookstore a[],int n)
{
for (int i = 0; i < n; i++)
{
scanf("%s %s %s %d", &a[i].name, &a[i].writer, &a[i].chupanshe, &a[i].price);
}
}
void search(struct bookstore a[], int n)
{
char s[20];
printf("请输入您要查询的书名:");
scanf("%s", &s);
int flag = 1;
int i;
for (i = 0; i < n; i++)
{
if (strcmp(a[i].name, s) == 0)
{
flag = 0;
break;
}
}
if (flag == 1)
printf("不存在此记录");
else
printf("%s %s %s %d", a[i].name, a[i].writer, a[i].chupanshe, a[i].price);
}
int main()
{
struct bookstore book[N];
input(book, N);
search(book, N);
}
问题七:输入10个整数,使用指针的方式通过调用函数输出数组的最大值和最小值。
#include<stdio.h>
int main()
{
int a[10];
for (int i = 0; i < 10; i++)
{
scanf("%d", &a[i]);
}
int* p, * q;
p = a;
int min, max;
min = a[0];
max = a[0];
q = a;
for (int i = 0; i < 10; i++)
{
if (min > *p)
min = *p;
p++;
}
for (int i = 0; i < 10; i++)
{
if (max < *q)
max = *q;
q++;
}
printf("the min is %d\n", min);
printf("the max is %d", max);
}