#include<stdio.h> int main() { int n,b,c,d,a,b,i; double s; char a; scanf("%d",&n); s=0;a='0';b=0; for(i=1;i<=n;i++) { scanf("%c%d %d %d\n",&a,&b,&c,&d); if(d/10==0) d=(double)d/10; else d=(double)d/100; if(c*d>=s){ s=c*d; a=a;b=b; } } printf("%c%d %.1f",a,b,s); return 0; } /为什么s一直0.0


以下是对您这段代码的分析: 1. 变量声明部分存在问题: - 您声明了两个名为 `b` 的变量,这会导致混淆。建议修改其中一个变量名。 2. 在循环中读取输入时: - 使用 `scanf("%c%d %d %d\n", &a, &b, &c, &d);` 可能会导致输入格式不正确。通常,`\n` 不应放在格式字符串中。 3. 在条件判断和赋值部分: - `if (d / 10 == 0) d = (double)d / 10; else d = (double)d / 100;` 这个逻辑可能不是您期望的。如果您想根据 `d` 的值进行不同的转换,应该更清晰地定义条件。 4. 在更新最大值部分: - `s = c * d; a = a; b = b;` 这里只是简单地将 `a` 和 `b` 重新赋值为自身,而没有根据当前输入的值进行更新。 为了解决 `s` 一直为 `0.0` 的问题,您需要仔细检查输入的读取是否正确,以及条件判断和赋值逻辑是否符合您的预期。修复变量声明中的重复问题。以下是一个可能的修正示例: ```c #include <stdio.h> int main() { int n, num, quantity, discount, item_num; double price; char item; double max_price = 0.0; char max_item; int max_item_num; scanf("%d", &n); for (int i = 1; i <= n; i++) { scanf(" %c%d %d %d", &item, &num, &quantity, &discount); if (discount < 10) price = quantity * discount * 0.1; else price = quantity * discount * 0.01; if (price >= max_price) { max_price = price; max_item = item; max_item_num = num; } } printf("%c%d %.1f", max_item, max_item_num, max_price); return 0; } ``` 在上述修正后的代码中,我们正确处理了输入,明确了价格的计算逻辑,并正确更新了最大值及其相关的信息。 [2024-11-07 19:49:06 | AI写代码神器 | 552点数解答]
- // rod6.cpp : defines the entry point for the console application. // #include "stdafx.h" // consoleapplication2.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <stdio.h> #include <math.h> #include <iostream> #include <conio.h> #include <cstdlib> using namespace std; double ro[10001]; double th[10001]; double e[10001]; double a[10001]; double b[10001]; double y[10001]; double x[10001]; double d[10001]; double d[10001]; double da[10001]; double db[10001]; double dc[10001]; double z[10001]; d(55点数解答 | 2024-08-16 15:22:27)202
- dim caizhi1 as string dim caizhi2 as string dim caizhi as string dim dianzulv1 as double dim dianzulv2 as double dim midu1 as double dim midu2 as double dim zhijing as double dim jiejubi as double dim jiemianji as double dim zhouchang as double dim dianzusichangdu as double dim zhongliang as double dim quanshu as double dim jieju as double dim dianzulv as double dim midu as double dim zuzhi as double private sub command1_click() dim xlapp as object dim xlworkbook as object dim xlworkshee(32点数解答 | 2024-10-31 15:19:51)189
- #include<stdio.h> int main() { int n,b,c,d,a,b,i; double s; char a; scanf("%d",&n); s=0;a='0';b=0; for(i=1;i<=n;i++) { scanf("%c%d %d %d\n",&a,&b,&c,&d); if(d/10==0) d=(double)d/10; else d=(double)d/100; if(c*d>=s){ s=c*d; a=a;b=b; } } printf("%c%d %.1f",a,b,s); return 0; } /为什么s一直0.0(552点数解答 | 2024-11-07 19:49:06)77
- #include<stdio.h> int main() { int n,b,c,d,a,b,i; double s; char a; scanf("%d",&n); s=0;a='0';b=0; for(i=1;i<=n;i++) { scanf("%c%d %d %d\n",&a,&b,&c,&d); if(d/10==0) d=(double)d/10; else d=(double)d/100; if(c*d>=s){ s=c*d; a=a;b=b; } } printf("%c%d %.1f",a,b,s); return 0; } /为什么s一直0.0(1139点数解答 | 2024-11-07 19:50:35)90
- #include<stdio.h> void get_char(); int position(char ch); int main() { get_char(); return 0; } void get_char() { char ch; printf("请输入字符:"); while((ch=getchar())!=EOF) { if((ch=getchar())=='\n') { continue; } if((ch=getchar())!=-1) { printf("%c在字母表中的位置是%d\n",ch,position(ch)); } else printf("%c不是字母表中的",ch); } } int position(char ch) { if(ch>='A'&&ch<='Z') return ch-'A'+1; if(ch>='a'&&ch<='z') return ch-'a'+1; else return -1; } 查错 (519点数解答 | 2025-02-07 12:41:36)125
- #define _crt_secure_no_warnings #include <stdio.h> #include <stdlib.h> #include<time.h> int game(char result) { int rn, num; int count = 1; srand((unsigned int)time(null)); for (int i = 0;i<1000 ; i++) { rn = rand(); if ((rn <= 100) && (rn >= 1)) { i = 1001; } } for (int i = 0; i < 7; i++) { num = scanf("%d", &num); if (num == rn) { printf("你赢了,一共猜了%d次", count); i = 7; } else if (num > rn) { printf("你猜错了,猜的偏大"); count++; } else if (num < rn) { printf("你猜错了,猜的偏小"); count++; } if (count == 6(403点数解答 | 2024-11-01 12:03:29)210
- #define _crt_secure_no_warnings #include <iostream> #include <cstdlib> #include <cmath> #include <vector> #include <cstdio> using namespace std; // 你的代码... const int nx = 784, nb = 500, ny = 10;//输入层x,隐藏层b,输出层y节点数 const double eta = 0.1;//学习率 struct node { double val{}; double bias{}; vector<double> weight; } x[nx], b[nb], y[ny];//输入层x,隐藏层b,输出层y double g[ny], e[nb];//用于反向传播 double trainx[nx], trainy[ny];//训练数据 double sigmoid(double x) { return 1.0 / (1.0 + exp(-x)); } double(34点数解答 | 2024-09-06 08:43:52)254
- #define _crt_secure_no_warnings #include <iostream> #include <cstdlib> #include <cmath> #include <vector> #include <cstdio> using namespace std; // 你的代码... const int nx = 784, nb = 500, ny = 10;//输入层x,隐藏层b,输出层y节点数 const double eta = 0.1;//学习率 struct node { double val{}; double bias{}; vector<double> weight; } x[nx], b[nb], y[ny];//输入层x,隐藏层b,输出层y double g[ny], e[nb];//用于反向传播 double trainx[nx], trainy[ny];//训练数据 double sigmoid(double x) { return 1.0 / (1.0 + exp(-x)); } double(1309点数解答 | 2024-09-06 08:46:09)265
- void sr(struct student* sr) //输入函数 显示器输入(录入学生信息) { int i = 0; printf("请输入学生的个数:"); scanf("%d", &d); system("cls");//清屏 for (; i < d; i++) { printf("请输入学生的姓名:"); scanf("%s", (*(sr + i)).name); printf("请输入学生的学号:"); scanf("%d", &(*(sr + i)).num); printf("请输入学生的语文成绩:"); scanf("%f", &(*(sr + i)).chinese); printf("请输入学生的数学成绩:"); scanf("%f", &(*(sr + i)).math); printf("请输入学生的英语成绩:"); scanf("%f", &(*(sr + i)).english); printf("请输入学生的计算机成绩:"); scanf("%f", &(*(sr + i)).c(5点数解答 | 2024-07-02 08:40:40)209
- #include <stdio.h> double calculatesum(double x, int n) { double sum = 1.0; // 第一项是1 double term = 1.0; // 初始项 int sign = -1; // 符号交替,从-1开始 for (int i = 1; i < n; i++) { term = sign * term * x / i; // 根据公式计算每一项 sum += term; // 累加到总和中 sign *= -1; // 交替符号 } return sum; } int main() { double x; int n; scanf("%lf %d", &x, &n); // 检查输入是否有效 if (x < -1 || x > 1) { printf("invalid inputs!\n"); } else(33点数解答 | 2024-11-08 22:08:49)172
- #include <stdio.h> double calculatesum(double x, int n) { double sum = 1.0; // 第一项是1 double term = 1.0; // 初始项 int sign = -1; // 符号交替,从-1开始 for (int i = 1; i < n; i++) { term = sign * term * x / i; // 根据公式计算每一项 sum += term; // 累加到总和中 sign *= -1; // 交替符号 } return sum; } int main() { double x; int n; scanf("%lf %d", &x, &n); // 检查输入是否有效 if (x < -1 || x > 1) { printf("invalid inputs!\n"); } else(684点数解答 | 2024-11-08 22:10:23)123
- 快速排序:# include< iostream>using namespace std;# include< stdlib. h># include< time. h>const int n =10;const int min= 10;const int max=99;int getrand( int min, int max){return ( rand()%( max-min+1)+ min);}void set( int r[], int n){int i;for(i=0;i<n;i++)r[i]=getrand(min, max);}void show( int r[], int n){int i;for(i=0;i<n;i++)cout << r[i]<<" ";cout << endl;}int partition( int r[], int i, int j){//由你完成}void quicksort( int r[], int i, int j){//由你完成}int main(){srand( time(0));int a[n];set(a, n);cout<<"(710点数解答 | 2024-11-14 10:44:25)205