如何添加语句if-else
How to add statement if-else?
如何为" kodeprodi
"添加if-else
语句?
每次我添加if-else
语句时,总是会出现消息"需要左值"。
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
typedef struct {
char bp[13];
char nama[15];
int kodeprodi;
char namaprodi[10];
float ipk;
} mahasiswa;
int main()
{
char pil;
do {
mahasiswa mhs[10];
int i, n;
{
printf("Data Nilai Mahasiswan");
printf("Berapa banyak data = ");
scanf("%d", &n);
for(i = 0; i < n; i++) {
printf("Data mahasiswa ke-%dn", i+1);
printf("Nomor BP: "); scanf("%s", &mhs[i].bp);
printf("Nama: "); scanf("%s", &mhs[i].nama);
printf("Kode Prodi: "); scanf("%d", &mhs[i].kodeprodi);
printf("IPK: "); scanf("%f", &mhs[i].ipk);
if (mhs[i].kodeprodi == 260) {mhs[i].namaprodi = "SI";}
else if (mhs[i].kodeprodi == 261) {mhs[i].namaprodi = "TI";}
}
//output
printf("No. BP Nama Kode Prodi Nama Prodi IPK n");
for(i = 0; i < n; i++) {
printf("n%2d %-10s %-9s %3d %3s %3.fn",
i+1, mhs[i].bp, mhs[i].nama, mhs[i].nama,
mhs[i].kodeprodi, mhs[i].namaprodi, mhs[i].ipk);
}
}
printf("Repeat again? Y/N");
scanf("%s", &pil);
printf("nn");
} while ((pil == 'Y') || (pil == 'y'));
}
即使在语句中 if-else,我也像这样输入
if(mhs[i].kodeprodi==260){namaprodi = "SI");
错误消息是"未定义的符号'namaprodi'
我稍微调整了一下你的代码。删除了未使用的conio.h,将kodeprodi类型更改为int(因为char只能处理数字-127..127),从某些scanf调用中删除和(因为您应该将指针传递给%s格式化程序的第一个字符),删除了printf的额外mhs[i].nama参数。
抱歉,我完全不理解您的代码:-)我的调整是半自动的!你应该更好地学习C编程。
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
typedef struct {
char bp[13];
char nama[15];
int kodeprodi;
char namaprodi[10];
float ipk;
} mahasiswa;
int main() {
char pil;
do {
mahasiswa mhs[10];
int i, n;
{
printf("Data Nilai Mahasiswan");
printf("Berapa banyak data = ");
scanf("%d", &n);
for(i=0;i<n;i++) {
printf("Data mahasiswa ke-%dn", i+1);
printf("Nomor BP: "); scanf("%s", mhs[i].bp);
printf("Nama: "); scanf("%s", mhs[i].nama);
printf("Kode Prodi: "); scanf("%d", &mhs[i].kodeprodi);
printf("IPK: "); scanf("%f", &mhs[i].ipk);
if(mhs[i].kodeprodi==260)
strcpy(mhs[i].namaprodi, "SI");
else if(mhs[i].kodeprodi==261)
strcpy(mhs[i].namaprodi, "TI");
}
//output
printf("No. BP Nama Kode Prodi Nama Prodi IPK n");
for(i=0;i<n;i++) {
printf("n%2d %-10s %-9s %3d %3s %3.fn", i+1, mhs[i].bp, mhs[i].nama, mhs[i].kodeprodi, mhs[i].namaprodi, mhs[i].ipk);
}
}
printf("Repeat again? Y/N");
scanf("%s", &pil);
printf("nn");
} while ((pil == 'Y') || (pil == 'y'));
return 0;
}
要快速修复,请使用:
if(mhs[i].kodeprodi==260){strncpy(mhs[i].namaprodi, "SI", 9);
需要strncpy()
才能将内容复制到 namaprodi
中。
namaprodi
是结构mahasiswa
的成员,因此您无法直接访问它。
但最好使用std::string
。
另外,正如@BoPersson提到的,char kodeprodi;
不能容纳 260,所以你最好把它转换成 int
.
相关文章:
- 我的简单if-else语句是如何无法访问的代码
- 我似乎对if/else的基本语句有问题:/
- C++ If/Else 语句被跳过
- 如果条件不相关,我应该更喜欢两个 if 语句而不是 if-else 语句吗?
- 如何将 if else 语句重写为 switch 语句
- 在 C++ 中的 if-else if- else 语句期间更改变量
- 为什么我的 if else 语句不起作用并从数组中输出正确的索引?
- 我的 If Else 语句无法在向量 (C++) 中提供最大值
- 为什么无论输入如何,所有 if-else 语句都会打印?
- 为什么切换 if else 语句的顺序会导致错误?
- 如何使用 if else 语句
- if/else 语句输出由于加号或减号而未显示正确的消息
- if-else 语句仅按特定顺序工作,我不知道为什么
- "if else"被视为单个语句吗?
- 试图避免在 for 循环中出现 if-else 语句,但代码似乎有一些错误
- 如何在 if-else 语句中使用 C++20 的可能/不太可能属性
- While循环和if/else语句工作不正常
- 我的fahrenheit-celcius程序会忽略我的if-else语句,并在每次运行该程序时将值更改为0
- 如何添加语句if-else
- if语句-if/else和参数放置C++