c语言程序设计之基础题

1,求边长为a的正方形外接圆面积

#include <stdio.h>
int main()
{
	int a;
	scanf("%d", &a);
	printf("%d", a * a);
}

2,求5!

#include<stdio.h>
int main()
{
	int i,sum=1;
	for (i = 1; i < 6; i++)
	{
		sum *= i;
	}
	printf("%d", sum);
}

3,输入50名同学的姓名和一门课的成绩,输出成绩大于等于80分同学的姓名和成绩

我这里遇到了一个问题:无法输出姓名和成绩,我经过以下尝试:

1.0版

#include <stdio.h>
int main()
{
	int i;
	char arr1[50];
	int arr2[50];
	printf("请输入五十名同学的姓名:\n");
	for (i = 0; i < 3; i++)
	{
		scanf("%s", arr1[i]);//这里用scanf实现整个字符串的输入
	}
	printf("请输入五十名同学的成绩:\n");
	for (i = 0; i < 3; i++)
	{
		scanf("%d", arr2[i]);
	}
	printf("成绩大于等于80分的同学姓名和成绩为:>\n");
	for (i = 0; i < 3; i++)
	{
		printf("姓名: % s	成绩:%d\n", arr1[i],arr2[i]);
	}
}

 不能得到解决,在c语言程序书132页中,用scanf( )函数输入字符串是,遇到空白字符(空格,回车符,制表符)时停止,即空白字符遇到当前字符串输入结束

2.0版

#include <stdio.h>
int main()
{
	int i,j;
	int arr1[50][20] = { 0 }, arr2[50] = { 0 };
	printf("请输入五十名同学的姓名:\n");
	for (i = 0; i < 3; i++)
	{
		for (j = 0; arr1[i][j] != '\0'; j++)
		{
			gets(arr1[i][j]);
		}
	}
	printf("请输入五十名同学的成绩:\n");
	for (i = 0; i < 3; i++)
	{
			scanf("%d", arr2[i]);
	}
	printf("成绩大于等于80分的同学姓名和成绩为:>\n");
	for (i = 0; i < 3; i++)
	{
		if (arr2[i] >= 80)
		{
			printf("姓名: % s	成绩:%d\n", arr1[i][j], arr2[i]);
		}
	}
}

不能得到解决,这题我以为是二维数组 每行表示一名同学 列表示每名同学的姓名,多少名同学和字符是两种不同类型名,即需要用到结构体

关于结构体的注意事项:

a.在为结构体名称命名时,需要遵循c语言标识符命名规则:以字母或下划线为开头,后面可以跟字母,数字或下划线.

b.结构体数据类型的定义以分号结束

c.结构体数据类型中的每个成员不是变量定义,系统不会为其分配内存单元,仅仅告知系统该结构是由哪些类型的成员组成,并当作一个整体来处理

d。结构体数据类型可以嵌套定义,但要注意结构体数据类型定义的先后关系,引用某数据类型时必须先定义该结构体类型

3.0版

#include <stdio.h>
struct student
{
	char name[20];
	float score;
};
int main()
{
	int i,j;
	struct student arr[3];
	printf("请输入五十名同学的姓名,成绩:\n");
	for (i = 0; i < 3; i++)
	{
		scanf("%s,%f", arr[i].name,&arr[i].score);
	}
	printf("成绩大于等于80分的同学姓名和成绩为:>\n");
	for (i = 0; i < 3; i++)
	{
		if (arr[i].score >= 80.0)
		{
			printf("姓名: % s	成绩:%f\n", arr[i].name	,arr[i].score);
		}
	}
}

还没结束,因为输入的是字符串 ,","也是一个字符,即不能使用逗号作为间隔

#include <stdio.h>
struct student
{
	char name[20];
	float score;
};
int main()
{
	int i,j;
	struct student arr[3];
	printf("请输入五十名同学的姓名,成绩:\n");
	for (i = 0; i < 3; i++)
	{
		scanf("%s %f", arr[i].name,&arr[i].score);
	}
	printf("成绩大于等于80分的同学姓名和成绩为:>\n");
	for (i = 0; i < 3; i++)
	{
		if (arr[i].score >= 80.0)
		{
			printf("姓名: % s	成绩:%f\n", arr[i].name	,arr[i].score);
		}
	}
}

4,求1-1/2+1/3-1/4+……+1/99-1/100

int main()
{
	int i;
	int sign = 1;
	float sum = 0;
	for (i = 1; i < 101; i++)
	{
		sum += sign * (1.0 / i);
		sign *= -1;
	}
	printf("%f", sum);

}

5,九九乘法表

#include<stdio.h>
int main()
{
	int i, j;
	for (i = 1; i < 10; i++)
	{
		for (j = 1; j <=i; j++)
		{
			printf("%d*%d=%-4d", i, j, i * j);
		}
		printf("\n");
	}
}

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值