#include<stdio.h>
int main(){
int N;
scanf("%d\n",&N);
int A[N],B[N],C[N];
for(int i=0;i<N;i++){
scanf("%d %d %d\n",&A[i],&B[i],&C[i]);
}
for(int i=0;i<N;i++){
if(A[i]*B[i]==C[i]){
printf("Lv Yan\n");
}else if(A[i]+B[i]==C[i]){
printf("Tu Dou\n");
}else{
printf("zhe du shi sha ya!");
}
}
}
我的代码出现问题,本题希望可以得到大家的指导,谢谢你的帮助!
供参考:
#include <stdio.h>
int main()
{
int T, a, b, c;
scanf("%d", &T);
while (T--) {
scanf("%d%d%d", &a, &b, &c);
if (a * b == c)
printf("Lv Yan");
else if (a + b == c)
printf("Tu Dou");
else
printf("zhe du shi sha ya!");
if (T) printf("\n");
}
return 0;
}
程序修改如下所示,试下:
#include<stdio.h>
int main()
{
int A[100],B[100],C[100];
int N;
scanf("%d\n",&N);
for(int i=0;i<N;i++){
scanf("%d %d %d\n",&A[i],&B[i],&C[i]);
}
for(int i=0;i<N;i++){
if(A[i]*B[i]==C[i]){
printf("Lv Yan\n");
}else if(A[i]+B[i]==C[i]){
printf("Tu Dou\n");
}else{
printf("zhe du shi sha ya!");
}
}
}
根据输入输出的说明,将第8行和第9行的两个scanf()函数里面去掉换行,然后把第16行的printf()语句里面加个换行就可以了。
修改如下:
参考链接:
https://baike.baidu.com/item/scanf/10773316?fr=ge_ala
#include<stdio.h>
int main(){
int N;
// https://baike.baidu.com/item/scanf/10773316?fr=ge_ala
scanf("%d",&N); // 从输入获取一个整数,scanf()里面不需要使用'\n'
int A[N],B[N],C[N];
for(int i=0;i<N;i++){ // 从输入获取整数,scanf()里面不需要使用'\n'
scanf("%d %d %d",&A[i],&B[i],&C[i]);
}
for(int i=0;i<N;i++){
if(A[i]*B[i]==C[i]){
printf("Lv Yan\n");
}else if(A[i]+B[i]==C[i]){
printf("Tu Dou\n");
}else{ // 因为有多组数据,所以打印每个输出后,需要在结尾加个换行
printf("zhe du shi sha ya!\n");
}
}
}
【以下回答由 GPT 生成】
\n
进行换行。改为scanf("%d", &N);
即可。scanf("%d", &N);
\n
进行换行。改为scanf("%d %d %d", &A[i], &B[i], &C[i]);
即可。scanf("%d %d %d", &A[i], &B[i], &C[i]);
最终的代码如下:
#include<stdio.h>
int main(){
int N;
scanf("%d", &N);
int A[N], B[N], C[N];
for(int i=0; i<N; i++){
scanf("%d %d %d",&A[i],&B[i],&C[i]);
}
for(int i=0; i<N; i++){
if(A[i] * B[i] == C[i]){
printf("Lv Yan\n");
}else if(A[i] + B[i] == C[i]){
printf("Tu Dou\n");
}else{
printf("zhe du shi sha ya!");
}
}
}
以上就是对代码的优化建议,希望对您有所帮助。
【相关推荐】