C语言中一个奇怪的小疑点-求解
C语言中一个奇怪的小问题------求解
前些天一个小弟让我给他弄个C语言的东东,要求如下:
0 欢迎!本程序用于测试题得分统计,最多支持1000题,每题最多10个选项
1 由用户输入题目数,选项数,每个选项的分数(每个选项都有相应的分数)
2 选项分为字母选项或数字选项
3 支持将选项分为多个类别,并打印出每个类别分数的总和
样例输入和输出:
选项为字母(1)或数字(2):1
请输入题目数:10
请输入选项数:4
请输入选项:A B C D
请依次输入每个选项的得分:1 2 3 4
请输入选择:A B C D A B C D A B
要将题目分为几个类别:2
请输入类别1的选项数和选项:5 1 2 3 4 5
请输入类别2的选项数和选项:5 2 4 6 8 10
类别1得分:11
类别2得分:12
写倒是很快写好了,但是有点小问题,那个选项第二个的标号或者分数总出问题(只有第二个),
试了几个方法,注释掉的都试过了,代码如下,各位给看看,求解,很谢谢。。。
前些天一个小弟让我给他弄个C语言的东东,要求如下:
0 欢迎!本程序用于测试题得分统计,最多支持1000题,每题最多10个选项
1 由用户输入题目数,选项数,每个选项的分数(每个选项都有相应的分数)
2 选项分为字母选项或数字选项
3 支持将选项分为多个类别,并打印出每个类别分数的总和
样例输入和输出:
选项为字母(1)或数字(2):1
请输入题目数:10
请输入选项数:4
请输入选项:A B C D
请依次输入每个选项的得分:1 2 3 4
请输入选择:A B C D A B C D A B
要将题目分为几个类别:2
请输入类别1的选项数和选项:5 1 2 3 4 5
请输入类别2的选项数和选项:5 2 4 6 8 10
类别1得分:11
类别2得分:12
写倒是很快写好了,但是有点小问题,那个选项第二个的标号或者分数总出问题(只有第二个),
试了几个方法,注释掉的都试过了,代码如下,各位给看看,求解,很谢谢。。。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int exerciseCount = 0, optionCount = 0, typeCount = 0, optionType = 0,
groupCount = 0, groupOptionCount = 0, groupScoreSum= 0;
void* options = NULL;
void* chooses = NULL;
// int* optionScores = NULL;
int* groupChooses = NULL;
int* groupScores = NULL;
printf("\
**************************************\n \
* 欢迎! *\n \
* 本程序用于测试题得分统计, *\n \
* 最多支持1000题,每题最多10个选项 *\n \
**************************************\n");
printf("选项为字母(1)或数字(2),请选择类型:");
scanf("%d", &optionType);
switch(optionType)
{
case 1: printf("选项为字母!\n"); break;
case 2: printf("选项为数字!\n"); break;
default: printf("非法选项!\n"); exit(0);
}
printf("请输入题目数:");
scanf("%d", &exerciseCount);
printf("请输入每题的选项数:");
scanf("%d", &optionCount);
// 存储选项标号数组
if(optionType == 1)
{
printf("请依次输入选项标号(请注意标号为字母):");
options = (char *) malloc(sizeof(char)*optionCount);
for(int i=0; i<optionCount; ++i)
{
scanf(" %c", (char *)options + sizeof(char)*i);
}
}
else if(optionType == 2)
{
printf("请依次输入选项标号(请注意标号为数字):");
options = (int *) malloc(sizeof(int)*optionCount);
for(int i=0; i<optionCount; ++i)
{
scanf("%d", (int *)options + sizeof(int)*i);