gpt4 book ai didi

正确的格式说明符以打印字符串

转载 作者:太空宇宙 更新时间:2023-11-03 23:39:40 24 4
gpt4 key购买 nike

我用下面的代码:

#include <stdio.h>

int main() {
int numOfClasses;

do{
printf("How many classes do you have?\t");
scanf("%d", &numOfClasses);
}while(numOfClasses < 1);

int count = numOfClasses;
char nameOfClass[30];
int numOfGrades[30];
printf("Which classes do you have, how many grades in each class?\n");
for(int i = 0; i < count; i++){
scanf("%s %d", &nameOfClass[i], &numOfGrades[i]);
}
for(int i = 0; i < count; i++){
printf("%s : %d\n", nameOfClass[i], numOfGrades[i]);
}

return 0;
}

我想让这个程序要求用户输入一个类(class)和该类(class)的成绩。稍后我会尝试输入该类(class)的每个成绩,但现在我想解决这个问题。

当我运行它时,我得到了这个错误信息:

warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘int’ [-Wformat=]
printf("%s : %d\n", nameOfClass[i], numOfGrades[i]);
^

最佳答案

变量 char nameOfClass[30] 应该是二维数组,如 char nameOfClass[30][30]。当您阅读类(class)名称时。所以,我把它改成了二维数组。您正在使用以下语句读取字符串数组:scanf("%s %d", &nameOfClass[i], &numOfGrades[i]); 如果你不使用二维数组,那么你的 nameOfClass 变量将只指向最后一个类名不正确。

    int count = numOfClasses;
char nameOfClass[30][30];
int numOfGrades[30];
printf("Which classes do you have, how many grades in each class?\n");
for(int i = 0; i < count; i++){
scanf("%s %d", nameOfClass[i], &numOfGrades[i]);
}
for(int i = 0; i < count; i++){
printf("%s : %d\n", nameOfClass[i], numOfGrades[i]);
}

关于正确的格式说明符以打印字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49440726/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com