输出杨辉三角形的功能:
这段程序实现了输出杨辉三角形的功能。首先,在外层循环中初始化前两行的数值为1,然后在接下来的循环中根据杨辉三角形的性质,计算并填充三角形中的其余值。最后,通过两层循环输出整个二维数组,即可打印出完整的杨辉三角形。
#include <stdio.h>
int main() {
int i, j;
int yh[6][6];
for (i = 0; i < 6; i++) {
yh[i][0] = 1;
yh[i][i] = 1;
}
for (i = 2; i < 6; i++) {
for (j = 1; j < i; j++) {
yh[i][j] = yh[i - 1][j - 1] + yh[i - 1][j];
}
}
for (i = 0; i < 6; i++) {
for (j = 0; j <= i; j++) {
printf("%4d", yh[i][j]);
}
printf("\n");
}
return 0;
}
输出数组的最大值及其下标的功能:
#include <stdio.h>
void fun(int *s, int n, int *k) {
int i;
for (i = 0, *k = i; i < n; i++) {
if (s[i] > s[*k]) {
*k = i;
}
}
}
int main() {
int a[5] = {1, 6, 2, 8, 0};
int k;
fun(a, 5, &k);
printf("数组中最大的数是 %d, 其下标为: %d\n", a[k], k);
return 0;
}
这段程序定义了一个函数 `fun`,用于找出数组中的最大值及其下标。在 `main` 函数中,定义了一个整型数组 `a`,调用函数 `fun` 来获取最大值的下标,并输出最大值及其下标。最后通过 `printf` 输出结果。
计算字符串长度的功能:
int str_len(char str[]) {
int len = 0;
while (str[len] != '\0') {
len++;
}
return len;
}
这个函数使用了一个 `while` 循环来计算字符串的长度,直到遇到字符串结束符 `\0` 为止。函数将逐个检查字符串中的字符并计数,直至遇到字符串结束符为止。最后返回计数值即为字符串的长度。
根据邮件的重量、用户是否选择加急,计算某同城快递公司邮费
具体计费方式如下: (1)重量在1000克以内(包括1000克),基本费8元
(2)超出1000克的部分,每500克加收超重费3元,不足500克部分,按500克计算
(3)如果选择加急多收5元
#include <stdio.h>
int main() {
int weight;
char isUrgent;
int baseFee = 8;
int surchargePer500g = 3;
int urgentFee = 5;
int extraWeight = 0;
int totalFee = 0;
// 输入重量和是否加急
printf("请输入重量(克),选择是否加急(y/n): ");
scanf("%d%c", &weight, &isUrgent);
// 计算超出1000克的重量
extraWeight = weight > 1000 ? weight - 1000 : 0;
// 计算基本费用
totalFee += baseFee;
// 计算超重费用
if (extraWeight > 0) {
totalFee += (extraWeight / 500) * surchargePer500g;
if (extraWeight % 500 != 0) {
totalFee += surchargePer500g; // 如果不足500克,按500克计算
}
}
// 如果选择加急,增加费用
if (isUrgent == 'y' || isUrgent == 'Y') {
totalFee += urgentFee;
}
// 输出邮费
printf("邮费为: %d元\n", totalFee);
return 0;
}
设计程序,程序通过定义学生结构体数组,存储了若干名学生的学号、姓名和3门课的成绩。函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大)排序。
#include <stdio.h>
#include <string.h>
struct student
{ long sno;
char name[10];
float score[3];
};
/****************fun函数******************/
void fun(struct student a[], int n)
{
int i,j,k;
struct student t;
for (i=0; i<n; i++)
{
k=i;
for (j=i+1; j<n; j++)
if (a[j].name[0] < a[k].name[0])
k=j;
t=a[k];a[k]=a[i];a[i]=t;
}
}
/****************fun函数******************/
void main()
{ struct student s[4]={{10001,"ZhangSan", 95, 80, 88},{10002,"LiSi", 85, 70, 78}, {10003,"CaoKai", 75, 60, 88}, {10004,"FangFang", 90, 82, 87}};
int i, j;
printf("\n\nThe original data :\n\n");
for (j=0; j<4; j++)
{ printf("\nNo: %ld Name: %-8s Scores: ",s[j].sno, s[j].name);
for (i=0; i<3; i++)
printf("%6.2f ", s[j].score[i]);
printf("\n");
}
fun(s, 4);
printf("\n\nThe data after sorting :\n\n");
for (j=0; j<4; j++)
{ printf("\nNo: %ld Name: %-8s Scores: ",s[j].sno, s[j].name);
for (i=0; i<3; i++)
printf("%6.2f ", s[j].score[i]);
printf("\n");
}
}